【问题标题】:pandas dataframe group and sort by weekday熊猫数据框分组并按工作日排序
【发布时间】:2018-05-24 07:05:48
【问题描述】:

我有包含 Day of Week 列的 pandas DataFrame。

df_weekday = df.groupby(['Day of Week']).sum()
df_weekday[['Spent', 'Clicks', 'Impressions']].plot(figsize=(16,6), subplots=True);

绘制 DataFrame 按字母顺序显示“星期几”:'Friday', 'Monday', 'Saturday', 'Sunday' , 'Tuesday' , 'Thursday', 'Wednesday'

如何以正确的工作日顺序对 df_weekday 进行排序和显示 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'。 ?

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    你可以先使用ordered catagorical

    cats = [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
    
    df['Day of Week'] = df['Day of Week'].astype('category', categories=cats, ordered=True)
    

    pandas 0.21.0+ 中使用:

    from pandas.api.types import CategoricalDtype
    cat_type = CategoricalDtype(categories=cats, ordered=True)
    df['Day of Week'] = df['Day of Week'].astype(cat_type)
    

    reindex:

    df_weekday = df.groupby(['Day of Week']).sum().reindex(cats) 
    

    【讨论】:

    • 我使用了'reindex'解决方案并立即工作,谢谢。
    • 伟大的解决方案jezrael!我喜欢它!
    • 谢谢先生。
    猜你喜欢
    • 2019-04-10
    • 2017-05-16
    • 2019-07-05
    • 2012-12-14
    • 2021-10-21
    • 2021-05-31
    • 2013-02-28
    • 2018-07-05
    • 1970-01-01
    相关资源
    最近更新 更多