在 Seaborn/Pandas 中将 X 轴值更改为星期几(周一至周日)

The_Bandit

我目前正在做我在网上找到的销售分析,想知道如何显示从他们当前订单到周一至周日的 x 轴值(一周中的天数)。

我使用以下方法将购买该物品的一周中的几天分组:

    df12 = df.groupby('Weekday Bought').count().sort_values(['Paid'], ascending = False)['Paid']
    display(df12)

返回:

    Weekday Bought
    Thursday     65
    Saturday     63
    Monday       58
    Friday       56
    Tuesday      55
    Wednesday    47
    Sunday       44
    Name: Paid, dtype: int64

我希望以降序显示,并在 x 轴上显示 Weekday Bought 并在 y 轴上计算 Paid 值的图表。我有我的 MatplotLib/Seaborn 代码来创建一个折线图:

    plt.figure(figsize=(15,6))
    chart12 = sns.lineplot(x = 'Weekday Bought', y = 'Paid', 
    data = df12.reset_index(), color = "green")
    plt.xlabel('Weekday Bought', size = 12)
    plt.ylabel('Number Bought', size = 12)
    chart12.set_title('Most Popular Day of Week for Buying', 
    size = 12)
    chart12.set_xticklabels(chart12.get_xticklabels(), 
    rotation=20)
    plt.show()

它正确地生成了一个带有正确数据的折线图。我想调整此代码以在 x 轴上按顺序显示 Mon - Sun。有谁知道我是否可以按顺序列出一周中的几天,然后将其“插入”到我的代码中?希望有人可以帮助我!谢谢!

注意 - Weekday Bought dtype 是对象

NK03

IIUC,使用 groupby 后reset_index,进行自定义排序 -

df = df.reset_index()
df.Weekday = pd.Categorical(df.Weekday,
                            categories=['Monday', 'Tuesday', 'Wednesday',
                                        'Thursday', 'Friday', 'Saturday', 'Sunday'],
                            ordered=True)

df = df.sort_values('Weekday')

输出:

     Weekday  Bought
2     Monday      58
4    Tuesday      55
5  Wednesday      47
0   Thursday      65
3     Friday      56
1   Saturday      63
6     Sunday      44

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章