2017-07-14 43 views
1

我有一個數據框與日期時間元素的行(或者他們是文本,我正從csv讀他們)例如:。 2017-07-14 09:10:40 2017-07-14 09:10:24 2017-07-14 09:10:22 2017-07-14 09:09:49 2017-07-14 09:09:48 2017-07-14 09:09:48 2017-07-14 09:09:26 2017-07-14 09:09:04 2017-07-14 09:08:35 2017-07-14 09:08:17 2017-07-14 09:08:07 圖表熊貓的行數隨着時間的推移

我想繪製每個日期或每小時有多少行。 (x軸上的日期和y軸上的行數)。

我該怎麼做?我意識到我需要做一次計數,但是我不知道如果每次約會都有數字,該怎麼辦。我想我需要把它映射到一個新的DF或其他東西?

謝謝!

+0

你想吧情節? – jezrael

+0

酒吧陰謀作品!線圖也很好。只是試圖看看趨勢/變化率 – Acoustic77

回答

1

我覺得你dt.datedt.hour和聚集size需要groupby,最後plot

df.groupby(df['Date'].dt.date).size().plot() 

或者:

#change axis name to Hours by rename 
df = df.groupby(df['Date'].rename('Hours').dt.hour).size().plot() 

樣品:

rng = pd.date_range('2017-04-03', periods=15, freq='3.5H') 
df = pd.DataFrame({'Date': rng}) 
print (df) 
        Date 
0 2017-04-03 00:00:00 
1 2017-04-03 03:30:00 
2 2017-04-03 07:00:00 
3 2017-04-03 10:30:00 
4 2017-04-03 14:00:00 
5 2017-04-03 17:30:00 
6 2017-04-03 21:00:00 
7 2017-04-04 00:30:00 
8 2017-04-04 04:00:00 
9 2017-04-04 07:30:00 
10 2017-04-04 11:00:00 
11 2017-04-04 14:30:00 
12 2017-04-04 18:00:00 
13 2017-04-04 21:30:00 
14 2017-04-05 01:00:00 

print (df.groupby(df['Date'].rename('Hours').dt.hour).size()) 
Hours 
0  2 
1  1 
3  1 
4  1 
7  2 
10 1 
11 1 
14 2 
17 1 
18 1 
21 2 
dtype: int64 

df.groupby(df['Date'].rename('Hours').dt.hour).size().plot() 

graph

df.groupby(df['Date'].rename('Hours').dt.hour).size().plot.bar() 

graph1

+0

我得到'AttributeError:只能使用.dt訪問器與日期時間值',但我日期列中的所有值格式化爲'2017-07-14 09:07:29 「我錯過了什麼嗎? – Acoustic77

+1

需要轉換成日期,'df ['col'] = pd.to_datetime(df ['col'])' – jezrael

+0

奇怪的部分是我已經在做那個 – Acoustic77

相關問題