我有一个带有以下内容的pandas DataFrame df:
Serial N voltage current
B 10 nan
B 10 nan
C 12 nan
D 40 nan
. . .
AB 12 nan
我还有以下字典,其中包含以下当前值(我的密钥在这里是序列号):
my_dict={A:0.6,B:0.2, ...,AB:0.2}
我想根据字典将字典的内容存储到dataFrame列“current”中。我可以在dataFrame df中使用相同的值来拥有多个序列号。如果可能的话,我想在不使用循环的情况下这样做。我试过这个:
for k,v in my_dict.items():
if df["Serial N"]==k:
df["current"]=v
但它不起作用,因为我没有行的位置(我可以有几个具有相同值的序列号;例如:Serial N列中的B)满足条件。如何在没有循环的情况下完成此操作?
答案 0 :(得分:1)
您可以使用map
:
print df
Serial N voltage current
0 B 10 NaN
1 B 10 NaN
2 C 12 NaN
3 D 40 NaN
4 AB 12 NaN
my_dict={"A":0.6,"B":0.2,"AB":0.2}
print my_dict
{'A': 0.6, 'B': 0.2, 'AB': 0.2}
df['current'] = df['Serial N'].map(my_dict)
print df
Serial N voltage current
0 B 10 0.2
1 B 10 0.2
2 C 12 NaN
3 D 40 NaN
4 AB 12 0.2