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

我需要一些帮助来弄清楚如何在同一数据框中将一列的值添加到其他列。


例如,我有 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   |

我尝试对实际添加进行硬编码,但遇到了错误代码。


我知道我可能遗漏了一些简单的东西。有什么建议吗?


尚方宝剑之说
浏览 63回答 2
2回答

慕莱坞森

指定axis=0何时将 Series 添加到 DataFrame。cols = ['value1', 'value2']df[cols] = df[cols].add(df['value3'], axis=0)   user_id  period  value1  value2  value30      123       1      10      15      101      123       2      20      20      152      246       1      38      37      353      246       2      26      30      254      135       1      66      64      605      135       2      53      57      50

GCT1015

我们可以做numpy传播df.update(df[['value1','value2']]+df.value3.values[:,None])df   user_id  period  value1  value2  value30      123       1      10      15      101      123       2      20      20      152      246       1      38      37      353      246       2      26      30      254      135       1      66      64      605      135       2      53      57      50
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python