web-dev-qa-db-fra.com

Plot datetime.date pandas

J'ai créé un pandas dataframe à partir de certains décomptes de valeurs à des dates de calendrier particulières. Voici comment je l'ai fait:

time_series = pd.DataFrame(df['Operation Date'].value_counts().reset_index())
time_series.columns = ['date', 'count']

Fondamentalement, il s'agit de deux colonnes, la première "date" est une colonne avec datetime.date les objets et la deuxième colonne, "count" sont simplement des valeurs entières.

Maintenant, je voudrais tracer un nuage de points ou un KDE pour représenter les changements de valeur au cours des jours civils, mais comment?

J'ai regardé la trame de données et tout semble dans l'ordre et exactement comme je l'ai décrit ci-dessus. Mais quand j'essaye:

time_series.plot(kind='kde')
plt.show()

J'obtiens un tracé où l'axe des x est de -50 à 150 comme s'il analysait le datetime.date les objets sous forme d'entiers en quelque sorte. De plus, il donne deux parcelles identiques plutôt qu'une seule.

Une idée comment je peux les tracer et voir le jour des calendriers le long de l'axe des x?

8
guy

vous êtes sûr d'avoir datetime? je viens d'essayer cela et cela a bien fonctionné:

df =    date    count
7   2012-06-11 16:51:32 1.0
3   2012-09-28 08:05:14 12.0
19  2012-10-01 18:01:47 4.0
2   2012-10-03 15:18:23 29.0
6   2012-12-22 19:50:43 4.0
1   2013-02-19 19:54:03 28.0
9   2013-02-28 16:08:40 17.0
12  2013-03-12 08:42:55 6.0
4   2013-04-04 05:27:27 6.0
17  2013-04-18 09:40:37 29.0
11  2013-05-17 16:34:51 22.0
5   2013-07-07 14:32:59 16.0
14  2013-10-22 06:56:29 13.0
13  2014-01-16 23:08:46 20.0
15  2014-02-25 00:49:26 10.0
18  2014-03-19 15:58:38 25.0
0   2014-03-31 05:53:28 16.0
16  2014-04-01 09:59:32 27.0
8   2014-04-27 12:07:41 17.0
10  2014-09-20 04:42:39 21.0

df = df.sort_values('date', ascending=True)
plt.plot(df['date'], df['count'])
plt.xticks(rotation='vertical')

enter image description here

MODIFIER:

si vous voulez un nuage de points, vous pouvez:

plt.plot(df['date'], df['count'], '*')
plt.xticks(rotation='vertical')

enter image description here

27
epattaro