对 pandas 数据框中具有相同字符串 ID 的列求和
Summing columns with same string ID in a pandas dataframe
我确信使用 pandas 有一个很好的方法可以做到这一点,但我将 运行 圈起来。
我想对具有相同 ID 号的列中的值求和。
示例 df:
ID_number Billed Paid Balance
A100 300 20 280
A100 1000 1000 0
B9B6 1200 0 1200
B9B6 200 40 160
我在输出中寻找的内容:
ID_number Billed Paid Balance
A100 1300 1020 280
B9B6 1400 40 1360
一直给我带来麻烦的警告是 ID 号包含字母和数字。
我已经尝试将数据框一分为二,并将 Billed、Paid 和 Balance 列更改为 int 值,以便可以对它们求和,但我需要按索引号对它们进行分组以便将它们求和。无论我如何对数据帧进行切片和切块,当我再次将它们连接在一起时,它会返回 'object' 类型,并且我的对象编号会像字符串一样被粉碎在一起,而不是像 int 值那样加在一起。
我也尝试过更改个别列的数据类型,但我无法让它工作,因为有些数字在十进制方面很长,我收到了这个错误:ValueError: invalid literal for int() with base 10:
我一直在尝试使用 df.groupby(['ID_number'].agg('sum')
函数进行聚合。
有谁知道如何做到这一点?
给你:
df.groupby('ID_number').sum()
df.groupby(['ID_number']).sum()
编辑:现在我发现您没有索引列,试试这个:
index_list = pd.Index.tolist(df.ID_number)
试试这个:
index_list = pd.Index.tolist(df.index)
df.groupby(index_list).sum()
将索引列转为列表,然后在groupby函数中使用。
希望这能解决您的问题。
我确信使用 pandas 有一个很好的方法可以做到这一点,但我将 运行 圈起来。
我想对具有相同 ID 号的列中的值求和。
示例 df:
ID_number Billed Paid Balance
A100 300 20 280
A100 1000 1000 0
B9B6 1200 0 1200
B9B6 200 40 160
我在输出中寻找的内容:
ID_number Billed Paid Balance
A100 1300 1020 280
B9B6 1400 40 1360
一直给我带来麻烦的警告是 ID 号包含字母和数字。
我已经尝试将数据框一分为二,并将 Billed、Paid 和 Balance 列更改为 int 值,以便可以对它们求和,但我需要按索引号对它们进行分组以便将它们求和。无论我如何对数据帧进行切片和切块,当我再次将它们连接在一起时,它会返回 'object' 类型,并且我的对象编号会像字符串一样被粉碎在一起,而不是像 int 值那样加在一起。
我也尝试过更改个别列的数据类型,但我无法让它工作,因为有些数字在十进制方面很长,我收到了这个错误:ValueError: invalid literal for int() with base 10:
我一直在尝试使用 df.groupby(['ID_number'].agg('sum')
函数进行聚合。
有谁知道如何做到这一点?
给你:
df.groupby('ID_number').sum()
df.groupby(['ID_number']).sum()
编辑:现在我发现您没有索引列,试试这个:
index_list = pd.Index.tolist(df.ID_number)
试试这个:
index_list = pd.Index.tolist(df.index)
df.groupby(index_list).sum()
将索引列转为列表,然后在groupby函数中使用。 希望这能解决您的问题。