计算MultiIndex DataFrame的平均值

时间:2019-04-04 11:35:45

标签: python pandas dataframe

我必须根据该级别的行数来计算MultiIndex DataFrame的平均值。

Image of Data

基本上,我必须对最后一列中的值求平均值,方法是将这些值相加并除以每个SKU_ID索引在Month中的行数。我如何在熊猫中进行? 谢谢

2 个答案:

答案 0 :(得分:0)

以与没有MultiIndex时相同的方式。

Button

答案 1 :(得分:0)

未提供MCVE,因此无法准确回答问题。

以下是显示计算特定数据统计量的多索引分组的示例。然后加入结果,以便可以进一步处理统计信息。

根据什么是MCVE提供答案

import pandas as pd
import sys
if sys.version_info[0] < 3:
    from StringIO import StringIO
else:
    from io import StringIO

data = StringIO("""Customer ID,SKU,Month,Value
C00005,550000,4,16
C00005,560000,5,17
C00005,560000,5,13
C00005,570000,6,18
C00005,570000,6,16
C00005,570000,6,15
C00005,560000,4,18
C00004,570000,5,17
C00004,570000,5,14
C00004,560000,6,16""")

df = pd.read_csv(data, sep=",", index_col=["Customer ID", "SKU", "Month"])

# Get count of month rows for each group
grouped_month_count = df.groupby(['Customer ID', 'SKU', 'Month']).count()
grouped_month_count.columns = ['Month Count']

# get sum of values for each group
summed_values = df.groupby(['Customer ID', 'SKU', 'Month']).sum()
summed_values.columns = ['Value Sum']

result = grouped_month_count.join(summed_values)
result['Average'] = result['Value Sum']/result['Month Count']
print(result)