【问题标题】:Calculate Average for MultiIndex DataFrame计算 MultiIndex DataFrame 的平均值
【发布时间】:2019-08-26 03:42:29
【问题描述】:

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

Image of Data

基本上,我必须通过将最后一列中的值相加并除以每个 SKU_ID 索引的 Month 中的行数来求平均值。如何在 Pandas 中进行操作? 谢谢

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

与没有 MultiIndex 的方式相同。

df.groupby('month').mean()

【讨论】:

  • 问题指出有SKU_ID 分组,并暗示必须处理多索引。
【解决方案2】:

未提供 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)

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2013-01-14
    • 2019-09-04
    • 2022-07-07
    • 2017-02-06
    相关资源
    最近更新 更多