gpt4 book ai didi

python - 根据列名的条件对 pandas dataframe 列值求和

转载 作者:行者123 更新时间:2023-11-28 21:06:47 30 4
gpt4 key购买 nike

我有一个 DataFrame,其列名的形状为 x.y,我想在 x 上汇总具有相同值的所有列,而不必显式命名他们。也就是说,column_name.split(".")[0] 的值应该确定它们的组。这是一个例子:

import pandas as pd
df = pd.DataFrame({'x.1': [1,2,3,4], 'x.2': [5,4,3,2], 'y.8': [19,2,1,3], 'y.92': [10,9,2,4]})

df
Out[3]:
x.1 x.2 y.8 y.92
0 1 5 19 10
1 2 4 2 9
2 3 3 1 2
3 4 2 3 4

结果应该与此操作相同,只是我不必明确列出列名以及它们应该如何分组。

pd.DataFrame({'x': df[['x.1', 'x.2']].sum(axis=1), 'y': df[['y.8', 'y.92']].sum(axis=1)})

x y
0 6 29
1 6 11
2 6 3
3 6 7

最佳答案

另一种选择,您可以从列名中提取前缀并将其用作组变量:

df.groupby(by = df.columns.str.split('.').str[0], axis = 1).sum()

# x y
#0 6 29
#1 6 11
#2 6 3
#3 6 7

关于python - 根据列名的条件对 pandas dataframe 列值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42328808/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com