首页 > 解决方案 > 如何根据数据框中的相同索引将同一列中的值相乘?

问题描述

我有多个列和多个不同的索引,所以我对逻辑流程感到困惑

   list1  list2  list3
A      2      3      4
A      1      5      7
B      2      3      8
B      6      1      2
C      4      2      2
C      2      4      5

我想要的结果是:

   list1  list2  list3
A    2.0   15.0   28.0
B   12.0    3.0   16.0
C    8.0    8.0   10.0

标签: pythonpandasdataframe

解决方案


DataFrame.prod与 一起使用level=0

df1 = df.prod(level=0)

替代解决方案是GroupBy.prod按索引使用:

df1 = df.groupby(level=0).prod()
#alternative
df1 = df.groupby(df.index).prod()

print (df1)
   list1  list2  list3
A      2     15     28
B     12      3     16
C      8      8     10

推荐阅读