我有一個熊貓數據框。大約有50列和50000行。如果一個colums有Python:如何根據其他條件改變一列的值?
str.contains('certain response')
我想換另一列響應
'NA'
我會怎麼做這行?
我有一個熊貓數據框。大約有50列和50000行。如果一個colums有Python:如何根據其他條件改變一列的值?
str.contains('certain response')
我想換另一列響應
'NA'
我會怎麼做這行?
我相信你需要str.contains
的條件,如果需要通過NaN
使用np.nan
取代:
df.loc[df.column1.str.contains('certain response'), 'column 2'] = np.nan
或者使用mask
,如果True
得到NaN
S:
df['column 2'] = df['column 2'].mask(df.column1.str.contains('certain response'))
樣品:
df = pd.DataFrame({'column1':['certain response','certain response 2','aaa'],
'column 2':[2,3,4]})
df['column 2'] = df['column 2'].mask(df.column1.str.contains('certain response'))
print (df)
column 2 column1
0 NaN certain response
1 NaN certain response 2
2 4.0 aaa
好的,我試過了。我得到一個錯誤:TypeError:錯誤的操作數類型爲一元〜:'float' –
需要'na'參數 - ''df.column1.str.contains('確定響應',na = False)' – jezrael
知道了!謝謝! –
對不起,我不明白你的問題:是否意味着以下?如果一列的值包含「特定響應」,則您希望將另一列的值更改爲「不適用」(在同一行中)。 – nCessity
是的!到目前爲止,我沒有這個工作。 df = df.loc [df.column1.contains('certain response'),'column 2'] ='NaN' –
[Python PANDAS,基於另一個值更改一個值](https:// stackoverflow。 com/questions/19226488/python-pandas-change-one-value-based-on-another-value) – gobrewers14