我在python中有以下数据帧(df1):
ID Date Time XYZ
0 GP3 2016-01-08 16:00:00 64
1 GP2 2016-01-08 16:00:00 557
2 GP4 2016-01-08 16:00:00 747
3 GP1 2016-01-08 16:00:00 406
4 EP3 2016-01-08 16:00:00 64
我想在其中添加另一列'ABC',具有d/f值(根据dataframe中的'ID',从另一个字典(dict1)中提取)
ID Date Time XYZ ABC
0 GP3 2016-01-08 16:00:00 64 23
1 GP2 2016-01-08 16:00:00 557 45
2 GP4 2016-01-08 16:00:00 747 56
3 GP1 2016-01-08 16:00:00 406 89
4 EP3 2016-01-08 16:00:00 64 14
我试着做到:
df1["ABC"]=[0]*df1.shape[0]
for i in df1.iterrows():
i[1][4] = dict1[i[1][0]] # dict1[i[1][0]] gives the desired int values
但是,我无法更新数据帧中“ABC”的值。他们都是0。如何更新所有值? 格言1:
dict1={'GP1':89,'GP2':45,'GP3':23,'GP4':56,'EP3':14}
使用^{} 方法:
如果ID系列中有额外的元素,它将返回NaN。如果要用默认值更改它们,可以在末尾使用
.fillna(0)
。如果您想要ID系列的原始值,请改用.fillna(df1['ID'])
。你知道吗相关问题 更多 >
编程相关推荐