如果我的数据框包含包含相同名称的列,是否可以通过某种函数(即求和)将具有相同名称的列组合起来?
例如:
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/