python - 从 Pandas 数据框中删除重复的列索引

标签 python pandas dataframe

我正在寻找一种解决方案来删除我的数据框中的重复列索引 - 我需要做的是逐行添加重复列中的值,然后仅保留这些列中的 1 个具有总和值

df = pd.DataFrame(np.array([[0,0,0,1,0,0,0], [0,1,0,0,0,0,0],
                        [0,0,0,0,0,0,1]]), columns=[1,1,2,2,2,3,3], index=[1,2,3])

   1  1  2  2  2  3  3
1  0  0  0  1  0  0  0
2  0  1  0  0  0  0  0
3  0  0  0  0  0  0  1

应该变成

   1  2  3
1  0  1  0
2  1  0  0
3  0  0  1

最佳答案

简单地按列分组:

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

   1  2  3
1  0  1  0
2  1  0  0
3  0  0  1

或者如@user2285236 所指出的

df.groupby(axis=1, level=0).sum()

关于python - 从 Pandas 数据框中删除重复的列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51695171/

相关文章:

python - 从字典中获取键

python - 如何在Python中用点覆盖水平条形图?

python 用户界面卡住

python - 如何按一段时间对DataFrame进行分组?

python - 如何在数据框中添加新的计算列?

python - 具有混合类型的 Pandas DataFrame 样式会产生 TypeError

python - 如何在 python 中捕获 "split"异常?

pandas_datareader.yahoo.daily 突然不工作

python - 在未捕获数据的情况下,将值为 0 的周添加到包含时间序列数据的 pandas 数据框中

从 R 读取断开的 CSV 行