我的熊貓資料框看起來像這樣。對于每一行,如果術語“xxpos”出現在“SNIPPET”列中并且如果 Q2 == 1 中的值,我想將 Q2 中的值替換為“正”。我還想將 Q2 中的值替換為“負”如果術語“xxneg”出現在“SNIPPET”列中,Q2 中的值 == 1 等。
我嘗試了一些事情,包括以下但沒有成功:
df['Q2'] = np.where(("xxpos" in df["SNIPPET"]) & (df['Q2'] == 1) ,"Positive", df['Q2'])
處理多種情況的最簡單解決方案是什么?
uj5u.com熱心網友回復:
您可以嘗試使用以下代碼。
df.loc[(df['Q2']==1) & (df['SNIPPET'].str.contains('xxpos')), 'Q2'] = 'Positive'
df.loc[(df['Q2']==1) & (df['SNIPPET'].str.contains('xxneg')), 'Q2'] = 'Negative'
uj5u.com熱心網友回復:
使用np.select. 這應該是最高效的。
conds = [(df['SNIPPET'].str.contains('xxpos')) & (df['Q2'].eq(1)), (df['SNIPPET'].str.contains('xxneg')) & (df['Q2'].eq(1))]
choices = ['Positive', 'Negative']
output = np.select(conds, choices, default=df['Q2'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/429464.html
