簡體   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