首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从另一个数据帧有条件地更新pandas数据帧

从另一个数据帧有条件地更新pandas数据帧
EN

Stack Overflow用户
提问于 2021-01-21 04:53:15
回答 2查看 28关注 0票数 0

我有一个包含两组值的主数据帧:

代码语言:javascript
运行
复制
df1 = pd.DataFrame({'id1': [1, 1, 2, 2],
               'dir1': [True, False, True, False],
               'value1': [55, 40, 84, 31],
               'id2': [3, 3, 4, 4],
               'dir2': [True, False, False, True],
               'value2': [60, 30, 7, 15]})

   id1   dir1  value1  id2   dir2  value2
0    1   True      55    3   True      60
1    1  False      40    3  False      30
2    2   True      84    4  False       7
3    2  False      31    4   True      15

然后我有一个更新数据帧,看起来像这样:

代码语言:javascript
运行
复制
df2 = pd.DataFrame({'id': [1, 2, 3, 4],
               'value': [21, 22, 23, 24]})
   id  value
0   1     21
1   2     22
2   3     23
3   4     24

我想用df2的新值更新df1,但只在dirX为True的情况下更新。然后,数据应如下所示:

代码语言:javascript
运行
复制
   id1   dir1  value1  id2   dir2  value2
0    1   True     *21    3   True     *23
1    1  False      40    3  False      30
2    2   True     *22    4  False       7
3    2  False      31    4   True     *24

你知道这样的事情有没有可能发生?我试着查看.update,但是我不能让它工作。我是python的新手,而且只在23:00写过代码,所以可能我还不够敏锐。

EN

Stack Overflow用户

发布于 2021-01-21 05:02:21

尝试使用numpy中的np.where函数。

可能是这样的:

代码语言:javascript
运行
复制
df_1['value1'] = np.where(df_1['dir2'] == True, df_2['value'], df_1['value1'])

也许您需要一些调整或合并,但我认为这将帮助您找到解决方案。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65817496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档