2017-10-06 5 views
0

私はPandasをしばらく使用していましたが、私はそれが間違った質問であると確信しています。比較と列の作成にdatetime.timeを使用する

datetime.timeの条件付きデータフレームに列を作成する必要があります。 datetime.time < 12の場合は、 'morning'で列を入力し、 'afternoon'と 'night'と同じ処理を行います。

import datetime 

b['time'] = ['01-01-2000 10:00:00', '01-01-2000 15:00:00', '01-01-2000 21:00:00'] 

b['time'].dt.time 

(output) 
1 10:00:00 
2 15:00:00 
3 21:00:00 

b['time'].dt.time < 12 #example 

TypeError: can't compare datetime.time to int 

質問:私はdatetime.timeとintを比較できません。これをどうすれば解決できますか?

非常に高く評価されています。

+0

は時間を比較することができませんか?データサンプルと希望する出力を追加できますか? – jezrael

+0

サンプルが追加されました。希望の出力はTrue/Falseシリーズのようなものになります。 – Vini

+0

それから 'b ['time']を使います.dt.hour <12' – jezrael

答えて

0

私はあなたがビンによってラベルにcutnumpy.searchsortedを使用することができると思う:

rng = pd.date_range('2017-04-03', periods=24, freq='H') 
df = pd.DataFrame({'Date': rng}) 

bins = [0, 5, 13, 17, 25] 
labels = ['Morning','Afternoon','Evening','Night'] 
hours = df['Date'].dt.hour 
df['bin'] = pd.cut(hours-5+24 *(hours<5),bins=bins,labels=labels,right=False) 

bins = [-1,4,9,17,21] 
labels = ['Night', 'Morning','Afternoon','Evening','Night'] 
df['bin1'] = np.array(labels)[np.array(bins).searchsorted(hours)-1]      
print (df) 
        Date  bin  bin1 
0 2017-04-03 00:00:00  Night  Night 
1 2017-04-03 01:00:00  Night  Night 
2 2017-04-03 02:00:00  Night  Night 
3 2017-04-03 03:00:00  Night  Night 
4 2017-04-03 04:00:00  Night  Night 
5 2017-04-03 05:00:00 Morning Morning 
6 2017-04-03 06:00:00 Morning Morning 
7 2017-04-03 07:00:00 Morning Morning 
8 2017-04-03 08:00:00 Morning Morning 
9 2017-04-03 09:00:00 Morning Morning 
10 2017-04-03 10:00:00 Afternoon Afternoon 
11 2017-04-03 11:00:00 Afternoon Afternoon 
12 2017-04-03 12:00:00 Afternoon Afternoon 
13 2017-04-03 13:00:00 Afternoon Afternoon 
14 2017-04-03 14:00:00 Afternoon Afternoon 
15 2017-04-03 15:00:00 Afternoon Afternoon 
16 2017-04-03 16:00:00 Afternoon Afternoon 
17 2017-04-03 17:00:00 Afternoon Afternoon 
18 2017-04-03 18:00:00 Evening Evening 
19 2017-04-03 19:00:00 Evening Evening 
20 2017-04-03 20:00:00 Evening Evening 
21 2017-04-03 21:00:00 Evening Evening 
22 2017-04-03 22:00:00  Night  Night 
23 2017-04-03 23:00:00  Night  Night 
関連する問題