【发布时间】:2016-06-23 20:54:51
【问题描述】:
我有以下格式的字典:
MyDict = {"string1" : 10, "string2" : 20, "string3" : 30, ...}
我还有一个大的 DataFrame,格式如下:
col1 col2
0 string1 1
1 string2 2
2 string3 1
3 string1 3
4 string3 4
5 string1 5
我想找到 col1 != string1 的值,并根据我最初提到的行内容和字典更改值:
df.loc[df["col1"] != "string1" , "col2"] = df["col2"] * MyDict[df["col1"]]
(我立即意识到,使用上述 loc 的用法是不可能的,果然:Series 的对象是可变的,因此它们不能被散列)
所需输出的表示:
col1 col2
0 string1 1
1 string2 40
2 string3 30
3 string1 3
4 string3 120
5 string1 5
在 Pandas 中处理此问题的正确方法是什么?
【问题讨论】: