我需要将多列聚合为一列。我有以下代码可以工作,但现在列,我正在努力将其修改为几列。
import pandas as pd
# Sample DataFrame
data = {
'Group': ['A', 'A', 'B', 'B', 'A', 'B'],
'Value': [1, 2, 3, 4, 5, 6],
'Qty': [100, 202, 403, 754, 855, 1256]
}
df = pd.DataFrame(data)
print (df)
result = df.groupby('Group')['Value'].apply(lambda x: pd.Series([', '.join(map(str, x))])).reset_index()
print(result)
这会生成一个包含“Group”列(groupby)和一列“Value”的表,但我需要另一列包含变量 Qty 的聚合输出。实际上,我的数据集有 12 个需要聚合的变量。 有什么建议吗?
提前谢谢您,祝 2024 年快乐!
要以更实用的方式对许多列进行操作,请循环遍历所有非“组”的列,如果您有很多变量,这将为您提供实用性:
aggregated_data = df.groupby('Group').agg({col: concatenate_with_comma for col in df.columns if col != 'Group'})
至于
concatenate_with_coma
的用法,这里是:
def concatenate_with_comma(series):
return ', '.join(map(str, series))
仅供参考,如果这是您最终的目标,您可以使用“sum”和其他函数代替。结果是这样的:
Value Qty
Group
A 1, 2, 5 100, 202, 855
B 3, 4, 6 403, 754, 1256