如果兩列中的值的組合有效,我想替換列中的值。比方說,我有以下DataFrame
搜索數據框中的組合以更改單元格值
df = pd.DataFrame([
['Texas 1', '111', '222', '333'],
['Texas 1', '444', '555', '666'],
['Texas 2', '777','888','999']
])
0 1 2 3
0 Texas 1 111 222 333
1 Texas 1 444 555 666
2 Texas 2 777 888 999
如果我想在column 2 = 222
我做column 2
如果column 0 = Texas 1
和值替換值如下:
df.ix[ (df.Column 0=='Texas 1')&(df.Column 2 =='222'),Column 2] = "Success"
,對於一個工作正常幾個組合。我失去的部分是如何爲300多種組合做到這一點?我想也許我可以使用dict
並存儲密鑰,這將是'Success'
或任何其他價值。列表可以是組合。有點像這樣。
a["Success"] = [Texas 1, 222]
>>> a
{"Success": [Texas 1, 222]}
但我不知道如何做到這一點在DataFrame
。
這給了我一直在尋找的東西。在這個特定的例子中使用字典或列表有什麼區別? – rubito
在這個特定的例子中真的沒有關係。字典更方便但速度更慢,不保存順序,而列表更快,並保持順序。就語義而言,在這裏使用字典沒有意義,例如如果兩個不同的值對應該給出相同的結果呢?關鍵是什麼,價值是什麼? –