簡體   English   中英

熊貓在不同水平上繪制持續時間

[英]pandas plotting duration with different levels

我有一些這樣的數據

    level   ts
0   1.0 2014-11-27 16:00:28.211950-08:00
1   1.5 2014-12-04 17:54:56.185200-08:00
2   2.1 2014-12-04 17:59:54.303900-08:00
3   2.6 2014-12-04 18:04:54.307770-08:00
4   1.8 2014-12-04 18:09:55.917890-08:00
5   1.1 2014-12-04 18:14:54.977890-08:00
6   1.0 2014-12-04 18:19:56.729060-08:00

我想生成一個圖,其中Y軸是水平,X軸是一周中的時間(假設X軸的整個范圍是一周,然后將時間戳投影到特定位置)。 我想畫線(或框),例如,從2014-12-04 17:54:56.185200-08:002014-12-04 17:59:54.303900-08:002014-12-04 17:59:54.303900-08:001.5水平,從2014-12-04 17:59:54.303900-08:002014-12-04 18:04:54.307770-08:00另一條水平線,以2.1等,當然,這里時間戳需要轉換為一周內的值。

我怎樣才能做到這一點?

我仍然不確定您要實現的目標,我將做出一個大膽的猜測,即您想使用工作日+小時+分鍾的標簽來繪制x軸 ,這可以通過添加新列並設置多個索引,如下所示:

import pandas as pd

df
   level                         ts
0    1.0 2014-11-28 00:00:28.211950
1    1.5 2014-12-05 01:54:56.185200
2    2.1 2014-12-05 01:59:54.303900
3    2.6 2014-12-05 02:04:54.307770
4    1.8 2014-12-05 02:09:55.917890
5    1.1 2014-12-05 02:14:54.977890
6    1.0 2014-12-05 02:19:56.729060

df['weekday'] = pd.DatetimeIndex(df['ts']).weekday
# you may use time if you just need timestamp
# df['time'] = pd.DatetimeIndex(df['ts']).time
df['hour'] = pd.DatetimeIndex(df['ts']).hour
df['minute'] = pd.DatetimeIndex(df['ts']).minute
# after that you construct a new dataframe with desired columns
df1 = df[['level', 'weekday', 'hour', 'minute']]
# then plot it by setting index to weekday and time (hour + minute)
df1.set_index(['weekday', 'hour', 'minute']).plot(kind='bar')

在此處輸入圖片說明

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM