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