gpt4 book ai didi

python - Pandas Groupby 的排序和绘图输出

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:16 25 4
gpt4 key购买 nike

这里有一个更乏味的问题,但希望有人能帮忙。我正在尝试绘制汇总值(按星期几分组),但按星期几显示日期缩写和顺序(即显示星期一,首先使用索引 0 对其进行排序)。

def Format_plot(plot):
plot.spines["top"].set_visible(False)
plot.spines["right"].set_visible(False)
plot.yaxis.set_ticks_position("left")
plot.xaxis.set_ticks_position("bottom")

#For purposes of mapping
days = {0:'Mon',1:'Tues',2:'Weds',3:'Thurs',4:'Fri',5:'Sat',6:'Sun'}
ds['signup_weekday'] = ds['signup_dayofweek'].apply(lambda x: days[x])
ds = ds.sort_values(by = 'signup_date')
first_ride_rate = {
'success': lambda x: 1.0*sum(x)/len(x)
}

def GraphMe(item):
de = ds[pd.notnull(ds[item])]
if item == 'signup_weekday':
sorter = 'signup_dayofweek'
else:
sorter = item
de = de.sort_values(by = sorter)

total_avg = 1.0*sum(de['success'])/len(de['success'])

plot = de.groupby(item).agg(first_ride_rate).plot(kind = 'bar',legend=None, title = "Share of signups to complete a first trip")

Format_plot(plot)
plot.axhline(y=total_avg, color = 'orange')
plot.set_xlabel(item)
plot.set_ylabel('Share of Signups to Complete')
print sorter

for item in ['signup_dayofweek','signup_weekday']:
GraphMe(item)

Notebook Snapshot

正如你所看到的,它并没有像我想要的那样在星期索引上排序,希望有人有一个聪明的技巧。此外,如果有一种简单的方法将 jupyter 笔记本单元输入到堆栈溢出中,将有助于了解进一步的问题。

谢谢!

最佳答案

如果我理解正确,名为 signup_dayofweek 的图表是正确的,您只是想在 x 轴上有不同的标签?!

在这种情况下只需添加

plot.set_xticklabels([days[i] for i in range(7)])

(这里是 .set_xticklabels 的文档)

关于python - Pandas Groupby 的排序和绘图输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41903945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com