[英]doubled labels in barplot python
我处理航班延误的数据集。 该数据集位于: https : //www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name= On- Time
事实是,当我想绘制每月延迟天数汇总的条形图时,我的标签在x轴上会加倍。
您如何解释呢? 我已经验证了我的“ DAY_OF_MONTH”值在以下方面是唯一的:
np.unique(list(df['DAY_OF_MONTH']))
代码是:
plt.figure(figsize=(20,20))
grouped = df[['ARR_DELAY', 'DAY_OF_MONTH']].groupby('DAY_OF_MONTH').mean()
grouped.plot(kind='bar',figsize=(15,10))
plt.title('Retard moyen des départs de vols selon les jours du mois, en minutes')
问题是类型转换为numpy数组。 读取时输入的数据读取的值很少是数字,而字符则很少。 当您使用numpy检查唯一值时,它首先将您的pandas系列转换为numpy数组,并强制所有元素变为String,然后进行唯一计数,从而得出正确的计数,但是在绘制类型转换时不会发生。
您需要显式进行转换(请参见下面的示例)-
df1 = pd.DataFrame({'Col1': [1,2,3,4,5,6,7,8,9,10,11, 12, 1,2,3,4,5,6,7,8,9,10,11, 12],
'Col2' : [1,1,1,2,2,2,1,1,2,3,4,4,1,2,3,6,7,9,1,3,6,1,8,5,]})
df2 = pd.DataFrame({'Col1': ['1','2','3','4','5','6','7','8','9','10','11',' 12',' 1','2','3','4',\
'5','6','7','8','9','10','11',' 12'],
'Col2' : [1,1,1,2,2,2,1,1,2,3,4,4,1,2,3,6,7,9,1,3,6,1,8,5,]})
df = pd.concat([df1, df2], axis=0)
print(np.unique(list(df['Col1'])))
df['Col1'] = df['Col1'].astype('int32')
print(np.unique(list(df['Col1'])))
['1''12''1''10''11''12''2''3''4''5''6''7''8''9']
[1 23 4 5 6 7 8 9 10 11 12]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.