繁体   English   中英

根据条件更改列的值

[英]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.containsint

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM