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

查找 Pandas 中按值关联的行之间的差异

查找 Pandas 中按值关联的行之间的差异

尚方宝剑之说 2023-03-08 11:06:36
我需要一些帮助来弄清楚如何在同一数据框中将一列的值添加到其他列。例如,我有 df 随机生成的数据:df = pd.DataFrame({'user_id': [123, 123, 246, 246, 135, 135],                   'period': [1, 2, 1, 2, 1, 2],                   'value1': [0, 5, 3, 1, 6, 3],                   'value2': [5, 5, 2, 5, 4, 7],                   'value3': [10, 15, 35, 25, 60, 50]})   | user_id |period| value1 | value2 | value3 |   |---------|------|--------|--------|--------|0  |  123    |   1  |   0    |   5    |   10   |1  |  123    |   2  |   5    |   5    |   15   |2  |  246    |   1  |   3    |   2    |   35   |3  |  246    |   2  |   1    |   5    |   25   |4  |  135    |   1  |   6    |   4    |   60   |5  |  135    |   2  |   3    |   7    |   50   |所以在上面的 df 中,我将从“value3”列中获取值,并将其添加到“value1”和“value2”中的值,同时保留其他列。df2   | user_id |period| value1 | value2 | value3 |   |---------|------|--------|--------|--------|0  |  123    |   1  |   10   |   15   |   10   |1  |  123    |   2  |   20   |   20   |   15   |2  |  246    |   1  |   38   |   37   |   35   |3  |  246    |   2  |   26   |   30   |   25   |4  |  135    |   1  |   66   |   64   |   60   |5  |  135    |   2  |   53   |   57   |   50   |我尝试对实际添加进行硬编码,但遇到了错误代码。我知道我可能遗漏了一些简单的东西。有什么建议吗?
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

指定axis=0何时将 Series 添加到 DataFrame。


cols = ['value1', 'value2']

df[cols] = df[cols].add(df['value3'], axis=0)


   user_id  period  value1  value2  value3

0      123       1      10      15      10

1      123       2      20      20      15

2      246       1      38      37      35

3      246       2      26      30      25

4      135       1      66      64      60

5      135       2      53      57      50


查看完整回答
反对 回复 2023-03-08
?
GCT1015

TA贡献1827条经验 获得超4个赞

我们可以做numpy传播


df.update(df[['value1','value2']]+df.value3.values[:,None])

df

   user_id  period  value1  value2  value3

0      123       1      10      15      10

1      123       2      20      20      15

2      246       1      38      37      35

3      246       2      26      30      25

4      135       1      66      64      60

5      135       2      53      57      50



查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 61 浏览
慕课专栏
更多

添加回答

举报

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