Python:按日期分组并查找数据框中列的平均值

标签 python pandas dataframe grouping

我有一个包含 3 列的数据框。 时间代表不同月份的每个月的每一天。我想要做的是获取每天的“计数”值并每月对其取平均值,并针对每个国家/地区执行此操作。输出必须是数据框的形式。

当前数据:

    Time    Country Count
 2017-01-01    us   7827
 2017-01-02    us   7748
 2017-01-03    us   7653
 ..
 ..
 2017-01-30    us   5432
 2017-01-31    us   2942
 2017-01-01    us   5829
 2017-01-02    ca   9843
 2017-01-03    ca   7845
 ..
 ..
 2017-01-30    ca   8654
 2017-01-31    ca   8534

期望输出(虚拟数据,数字不代表上面的DF):

    Time       Country   Monthly Average
 Jan 2017      us          6873
 Feb 2017      us          8875
 ..
 .. 
 Nov 2017      us          9614
 Dec 2017      us          2475
 Jan 2017      ca          1878
 Feb 2017      ca          4775
 ..
 .. 
 Nov 2017      ca          7643
 Dec 2017      ca          9441

最佳答案

我会这样组织它:

df.groupby(
    [df.Time.dt.strftime('%b %Y'), 'Country']
)['Count'].mean().reset_index(name='Monthly Average')

       Time Country  Monthly Average
0  Feb 2017      ca             88.0
1  Feb 2017      us            105.0
2  Jan 2017      ca             85.0
3  Jan 2017      us             24.6
4  Mar 2017      ca             86.0
5  Mar 2017      us             54.0

如果您的 'Time' 列还不是日期时间列,我会这样做:

df.groupby(
    [pd.to_datetime(df.Time).dt.strftime('%b %Y'), 'Country']
)['Count'].mean().reset_index(name='Monthly Average')

       Time Country  Monthly Average
0  Feb 2017      ca             88.0
1  Feb 2017      us            105.0
2  Jan 2017      ca             85.0
3  Jan 2017      us             24.6
4  Mar 2017      ca             86.0
5  Mar 2017      us             54.0

关于Python:按日期分组并查找数据框中列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47244294/

相关文章:

python - 将 wx 从类传递给函数是好是坏?

python - 如何通过odoo计算字段进行搜索?

python - Pandas.DataFrame.resample 出现意外结果

python - 如何使用通配符导入具有相似工作表名称的多个 Excel 文件?

python - 在 json 中存储 pandas 数据框时保持列和行顺序

python - 使用 pandas.DataFrame.melt() 与 seaborn 一起绘制数据

python - 近似模式匹配?

python - 我正在尝试使用 Python 将文本文件转换为 CSV

python - 缩放/归一化 pandas 列

python - Pandas 数据框与分配给特定值的重复项合并