为了账号安全,请及时绑定邮箱和手机立即绑定

如何将所选行列中的值替换为数据帧中的数组?

如何将所选行列中的值替换为数据帧中的数组?

凤凰求蛊 2022-08-02 18:43:31
我有一个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


查看完整回答
反对 回复 2022-08-02
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信