Pandas Участок с гистограммой, отсортированной по количеству? - PullRequest
0 голосов
/ 22 января 2020

Я использую следующий код для создания графика того, сколько нулей появляется в моем df, отсортированных по столбцу даты:

df[df['Gas'].isnull()]['ReportDate_Time'].sort_values().value_counts().plot()

enter image description here

Это график, который он возвращает, и это нормально, но я бы предпочел использовать гистограмму. Однако, если я передам аргумент 'bar' методу plot, я автоматически получу сортировку моих баров по общему количеству, а не по ReportDate_Time, как я и хотел:

df[df['Gas'].isnull()]['ReportDate_Time'].sort_values().value_counts().plot('bar')

enter image description here

Как бы я использовал бары и одновременно сортировал по ReportDate_Time?

1 Ответ

1 голос
/ 22 января 2020

Если я правильно понимаю, вам просто нужно отсортировать ваш фрейм данных по дате отчета, sort_values('Reportdate')

см. Пример ниже.

dates = pd.date_range(pd.to_datetime('2020-01-21'), pd.to_datetime('2020-02-01'),freq='D')
vals = np.random.randint(0,500,size=len(dates))
df = pd.DataFrame({'ReportDate' : dates, 'count' : vals})
df.sort_values('count',inplace=True)
df.reset_index(drop=True,inplace=True)

print(df)
   ReportDate  count
0  2020-01-28    135
1  2020-01-30    194
2  2020-01-21    238
3  2020-01-29    316
4  2020-01-31    325
5  2020-01-26    408
6  2020-01-23    450
7  2020-01-22    451
8  2020-01-25    452
9  2020-01-24    454
10 2020-02-01    463
11 2020-01-27    489



df.set_index('ReportDate').plot(kind='bar')

bar plot

и с сортировкой:

df.sort_values('ReportDate',ascending=True).set_index('ReportDate').plot(kind='bar')

enter image description here

...