我有一个dfdf = pd.DataFrame(data={'A': [1,2,3,4,5,6,7,8], 'B': [10,20,30,40,50,60,70,80]}) A B0 1 101 2 202 3 303 4 404 5 505 6 606 7 707 8 80我从中选择了几行。然后我有一个字典包含值,如果键与列中的值匹配,我应该将其插入列中BAdfmy_dict = {2: 39622884, 4: 82709546, 5: 28166511, 7: 89465652}当我使用以下作业时df.loc[df['A'].isin(my_dict.keys())]['B'] = list(my_dict.values())我收到错误:值错误:值的长度与索引的长度不匹配理想的输出是 A B0 1 101 2 396228842 3 303 4 827095464 5 505 6 281665116 7 894656527 8 80实现此过程的正确方法是什么?
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
你可以做 和 :mapfillna
df['B'] = df['A'].map(my_dict).fillna(df['B'])
输出:
A B
0 1 10.0
1 2 39622884.0
2 3 30.0
3 4 82709546.0
4 5 28166511.0
5 6 60.0
6 7 89465652.0
7 8 80.0
添加回答
举报
0/150
提交
取消