我有一个包含message
列的数据框,我想创建一个列media
,如果对于索引x,df.ix[x][message]=="<Media omitted>"
,那么我想要df.ix[x][media] = 1
例如对于dataframe:
index message
1 hello
2 <Media omitted>
3 hello
4 <Media omitted>
我会得到:
index message media
1 hello 0
2 <Media omitted> 1
3 hello 0
4 <Media omitted> 1
我试图只使用循环,但我确信有更智能,更快捷的方法。
答案 0 :(得分:1)
试试这个:
df['media'] = (df['message'] == '<Media omitted>').astype(int)
<强>解释强>
df['message'] == '<Media omitted>'
创建一个布尔系列。astype(int)
将布尔系列转换为整数类型以用于显示目的。答案 1 :(得分:1)
我认为你需要通过astype
将{}}布尔掩码转换为int
:
df['media'] = (df['message'] == '<Media omitted>').astype(int)
#very similar alternative
#df['media'] = df['message'].eq('<Media omitted>').astype(int)
print (df)
message media
index
1 hello 0
2 <Media omitted> 1
3 hello 0
4 <Media omitted> 1