シフト表を作っているのですが確認のため24時間中に漏れや重複がないか
startの日付でtimeを合計し24より減(漏れ)・増(重複)がないかをグラフにして確認しています。
他に確認するいい方法があれば教えて欲しいのですが
質問1
datetimeからdateに変換する方法教えてください。
datetimeindexにするとdateにできるのですがdatetimeindexにしなくても変換する方法があれば教えてください。
python
1import io 2import pandas as pd 3import numpy as np 4 5data = """ 6name start end 7a 2018/06/01 9:00:00 2018/06/01 18:00:00 8b 2018/06/01 18:00:00 2018/06/02 9:00:00 9c 2018/06/02 9:00:00 2018/06/02 18:00:00 10d 2018/06/02 18:00:00 2018/06/02 21:00:00 11e 2018/06/02 21:00:00 2018/06/03 9:00:00 12a 2018/06/03 9:00:00 2018/06/04 9:00:00 13b 2018/06/04 9:00:00 2018/06/04 18:00:00 14c 2018/06/04 18:00:00 2018/06/05 9:00:00 15""" 16pd.read_table(io.StringIO(data), sep="\s{4}", parse_dates=['start', 'end'], engine='python') 17 18df['time'] = df['end'] - df['start'] 19 20# indexに設定後、dateを取得 21df2 = df.set_index('start') 22df2['date']=df2.index.date 23 24table = pd.pivot_table(df2, values='time', index=['date'], aggfunc=np.sum) 25table.plot.barh()
nameで色分けできたらと思い
python
1table = pd.pivot_table(df2, values='time', index=['date'], columns=['name'], aggfunc=np.sum) 2table.plot.barh(stacked=True)
にしたのですが
TypeError: Cannot cast ufunc greater input from dtype('<m8[ns]') to dtype('<m8') with casting rule 'same_kind'
というエラーがでます。
質問2
stacked=Trueにしなければエラーはでないのですが積み上げにはできないのでしょうか
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー