[英]Change value of column on condition
我有一个Dataframe df的示例:
Col1 Col2
a "some string AXA some string "
b "some string2"
我想:如果df.Col2包含“ AXA”,则将值更改为1,否则将其更改为0。因此我得到:
Col1 Col2
a 1
b 0
我已经尝试过类似的方法,
if "AXA" in df['Col2']:
df['Col2'] = 1
或者如果我可以做类似的事情
df.loc[df['Col2'] contains "AXA"] = 1
谢谢你的帮助 !
您可以将str.contains
用作boolean mask
,然后将其str.contains
为int
:
print (df.Col2.str.contains('AXA'))
0 True
1 False
Name: Col2, dtype: bool
df['Col2'] = df.Col2.str.contains('AXA').astype(int)
print (df)
Col1 Col2
0 a 1
1 b 0
编辑:如果需要通过2个条件创建输出,最快的是使用double numpy.where
:
print (df)
Col1 Col2
0 a some string AXA some string
1 a some string AXE some string
2 b some string2
df['Col2'] = np.where(df.Col2.str.contains('AXA'), 1,
np.where(df.Col2.str.contains('AXE'), 2, 0))
print (df)
Col1 Col2
0 a 1
1 a 2
2 b 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.