python - 如何添加具有相同名称的 pandas 列的值?

标签 python pandas

我有一个 pandas 数据框,如下所示:

enter image description here

我有几个同名的列。我想将这些列合并为一列并对其中的值求和。例如,在第一行中,foot 作为列名称出现了 5 次。我想将这 5 个值与值之和 (1) 组合成一英尺的列。

对于上面的数据框,我希望将其合并为:

finger foot forearm glute groin
  0     1    0       0      0
  0     0    0       0      0
  0     0    0       0      0
  0     0    0       0      0
  0     0    0       0      0

本质上,具有 Finger 的 5 列被合并为一列,具有 header Finger,并且该行中所有项目的总和为 0。类似地,具有 foot 的 6 列被合并为一列,称为 foot,并取总和该特定行中所有 6 列的总和为 1。我想对所有列执行此操作,并获得具有相同列名的每个项目的总和。 我怎么能这样做呢?

最佳答案

使用DataFrame.groupby

这是一个例子

df=pd.DataFrame({'col1':[1,2],'col2':[2,3]})
df=pd.concat([df,df],axis=1)
print(df)

   col1  col2  col1  col2
0     1     2     1     2
1     2     3     2     3

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

   col1  col2
0     2     4
1     4     6

axis = 1 告诉 pandas 我们要按列进行分组,level = 0 告诉它我们要根据层级 0 来划分组列(因为 axis=1),在这种情况下,列中只有一层,因为没有 MultiIndex在列中,另一种方法是:

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

   col1  col2
0     2     4
1     4     6

关于python - 如何添加具有相同名称的 pandas 列的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58809851/

相关文章:

python - 使用 Python Sphinx 引用长名称

python - Pandas 数据框查询

python - 如何根据时间序列 Pandas 数据框的其他两个 boolean 列确定列中的状态?

python - 为什么 celery 在执行我的任务时会返回 KeyError?

SQL中集合的Python字典

python - 如何将 Pandas 中不同列中具有相同项目的行添加在一起

python - 根据来自不同数据框的两列条件乘以列?

python - 使用其他 Dataframe 数据作为 iloc 输入从 Dataframe 读取数据

python - 如何在调用 AWS Lambda 函数期间在有效负载中传递字节数据

Python:图的断开组件中的所有最短路径