Python unique()返回的名称顺序不同于groupby([';city';])
我试图按城市划分总销售组,并将条形图与相应城市匹配,我使用了以下代码:Python unique()返回的名称顺序不同于groupby([';city';]),python,pandas,Python,Pandas,我试图按城市划分总销售组,并将条形图与相应城市匹配,我使用了以下代码: best_city = all_data.groupby(['city']).sum() city = df.city.unique() plt.bar(city, best_city['Total']) plt.xticks(rotation=90) 该市返回“亚特兰大、奥斯汀、波士顿” 但酒吧的x标签是“波士顿、亚特兰大、奥斯汀” 所以我想知道如何匹配酒吧的正确名称 您只需执行以下操作: best_city = all
best_city = all_data.groupby(['city']).sum()
city = df.city.unique()
plt.bar(city, best_city['Total'])
plt.xticks(rotation=90)
该市返回“亚特兰大、奥斯汀、波士顿”
但酒吧的x标签是“波士顿、亚特兰大、奥斯汀”
所以我想知道如何匹配酒吧的正确名称 您只需执行以下操作:
best_city = all_data.groupby(['city']).sum()
best_city.plot.bar()
# or from your code:
# best_city['Total'].plot.bar()
groupby默认为排序,请尝试
all_data.groupby(['city',sort=False)。sum()
我尝试了这个,结果非常完美,谢谢!但我只是好奇unique()和groupby的结果顺序是相同的,只要我不让groupby通过传递False进行排序?“Uniques是按外观顺序返回的。基于哈希表的unique因此不会排序。”
-这是unique文档中的内容,因此,unique不会对数据进行排序,但默认情况下groupby会进行排序。因此,不,unique和groupby的顺序并不总是相同的:)