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

对 pandas 数据框中具有相同字符串 ID 的列求和

对 pandas 数据框中具有相同字符串 ID 的列求和

慕田峪7331174 2023-07-27 13:55:46
我确信使用 pandas 有一个很好的方法来做到这一点,但我一直在原地踏步。我想对具有相同 ID 号的列中的值求和。示例 df:ID_number  Billed  Paid  BalanceA100       300     20    280A100       1000    1000  0B9B6       1200    0     1200B9B6       200     40    160我在输出中寻找什么:ID_number  Billed  Paid  BalanceA100       1300    1020  280B9B6       1400    40    1360一直给我带来麻烦的警告是,身份证号码同时包含字母和数字。我尝试将数据帧分成两部分,并将 Billed、Paid 和 Balance 列更改为 int 值,以便可以对它们进行求和,但我需要按索引号对它们进行分组,以便将它们求和在一起。无论我如何对数据帧进行切片和切块,当我再次将它们连接在一起时,它都会以“对象”类型返回,并且我的对象编号会像字符串一样被粉碎在一起,而不是像 int 值那样添加在一起。我还尝试更改单个列的数据类型,但我无法使其工作,因为某些数字按小数计算相当长,并且返回了此错误:ValueError: invalid literal for int() with base 10:我一直在尝试使用该df.groupby(['ID_number'].agg('sum')函数进行聚合。有谁知道如何做到这一点?
查看完整描述

3 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

干得好:

df.groupby('ID_number').sum()


查看完整回答
反对 回复 2023-07-27
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

编辑:现在我发现您没有索引列,请尝试以下操作:

index_list = pd.Index.tolist(df.ID_number)

试试这个:

index_list = pd.Index.tolist(df.index)
df.groupby(index_list).sum()

它将索引列转换为列表,然后在 groupby 函数中使用它。希望这能解决您的问题。


查看完整回答
反对 回复 2023-07-27
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

 df.groupby(['ID_number']).sum()



查看完整回答
反对 回复 2023-07-27
  • 3 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

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