如何按索引合并Pandas DataFrame中虚拟变量列的取值?
实现方案
方法1:直接使用groupby按索引聚合求和
这是最简洁的实现方式,直接对索引分组后执行求和操作,即可得到相同索引下各列累加的结果:
import pandas as pd # 构造示例DataFrame data = {'Values': [0, 1, 0, 0], 'Values2': [1, 1, 0, 1],'Values3': [0, 0, 0, 1]} df = pd.DataFrame(data, index =['position1', 'position2', 'position1', 'position2']) # 核心实现代码 result = df.groupby(df.index).sum() print(result)
运行输出:
Values Values2 Values3 position1 0 1 0 position2 1 2 1
方法2:使用pivot_table实现
pivot_table完全可以满足该需求,只需指定按原索引分组、聚合规则为求和即可:
result = pd.pivot_table(df, index=df.index, aggfunc='sum') print(result)
运行输出和方法1完全一致。
内容的提问来源于stack exchange,提问作者Tiago Emanuel Pratas
相关产品推荐
相关产品推荐

