python - 合并 DataFrame 中的重复列

标签 python pandas dataframe group-by pandas-groupby

如果我的数据框包含包含相同名称的列,是否可以通过某种函数(即求和)将具有相同名称的列组合起来?

例如:

In [186]:

df["NY-WEB01"].head()
Out[186]:
                NY-WEB01    NY-WEB01
DateTime        
2012-10-18 16:00:00  5.6     2.8
2012-10-18 17:00:00  18.6    12.0
2012-10-18 18:00:00  18.4    12.0
2012-10-18 19:00:00  18.2    12.0
2012-10-18 20:00:00  19.2    12.0

我如何通过对列名称相同的每一行求和来折叠 NY-WEB01 列(有一堆重复的列,而不仅仅是 NY-WEB01)?

最佳答案

我相信这可以满足您的需求:

df.groupby(lambda x:x, axis=1).sum()

或者,根据 df 的长度,速度提高 3% 到 15%:

df.groupby(df.columns, axis=1).sum()

编辑:要将其扩展到求和之外,请使用 .agg()(.aggregate() 的缩写):

df.groupby(df.columns, axis=1).agg(numpy.max)

关于python - 合并 DataFrame 中的重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13078751/

相关文章:

python - 命令行参数显示为空字符串

python - 如何找到文本特征并打印它们?

python - 如果第一列中的数字是整数,则更新第二列

python - Pandas 计算连续行之间存在 X 秒差异的次数

python - 使用pandas GroupBy或pivot_table查找每日最低值(value)

python函数更改列表值

python - pyserial 2.7 文档错误,python 3.4 TypeError : an integer is required

python - Pandas:将多个变量转换为一组虚拟变量

Python:A *从具有经度和纬度的数据框路由

R:根据特定条件聚合数据框