2017-01-22 6 views
-2

私は以下のようなデータセットを持っています。Pythonでdatetime型を分類します

Sign-uptime            Part of Day 
----------------------------------------------------------------------------------- 
2015-02-03 13:48:41 
2015-02-06 19:42:33 
2015-02-07 08:22:11 
2015-02-11 02:23:11 
2015-02-14 22:45:41 

私はすでにデータセットをエクスポートし、私は次のように分類する必要があります。

Morning  5 am to 12 pm (noon) 
Afternoon 12 pm to 5 pm 
Evening  5 pm to 9 pm 
Night  9 pm to 5 am 

と列「の日のパート」でこれらを表示します。サインアップ時間はdatetime型です。

+0

は、日時から(例えば12.0)私は時間を抽出し...あなたは試してみました何 – franklinsijo

+0

を私たちを見ると、(列名:Hours.Int)をint型に変換してください。その後、私がしようと merged_data [ 'Hours.Int']は、すべての()の範囲(1,5)であれば:。 プリント( '夜') のelif等... –

+0

私はこれだけでなく merged_dataを試してみましたこれはおそらくこれを関数にしたのでしょうか?['Part_of_Day'] = numpy.where(int(12)<= merged_data ['Hours.Int']。all()<= int(17)、 "Afternoon"、0) –

答えて

0

私の最高のsoloutionについては以下を参照してください。 Theresは一日に渡って時間を過ごすのにいくつかの困難を抱えています...だから、私は「夜」の範囲を2つの別々の範囲(AM、PM)に分割するために仕事を使いました。以下を参照してください:

from datetime import datetime, time 

time_cats = { 
'morning':(time(05,0,0), time(11,59,59)), 'afternoon':(time(12,0,0), time(16,59,59)), 
'evening':(time(17,0,0), time(20,59,59)), 'night (PM)':(time(21,0,0), time(23,59,59)), 
'night (AM)':(time(0,0,0), time(04,59,59)) 
} 

times_to_check = [ 
'2015-02-03 13:48:41', 
'2015-02-06 19:42:33', 
'2015-02-07 08:22:11', 
'2015-02-11 02:23:11', 
'2015-02-14 22:45:41' 
] 

for check in times_to_check: 
    check_time = datetime.strptime(check, "%Y-%m-%d %H:%M:%S").time() 
    for k, v in time_cats.iteritems(): 
     if v[0] <= check_time <= v[1]: 
      print check, k 
+0

チェックする時間のリストと 'time_cats'辞書を取得する!おかげさまで –

+0

私は以下を試して、それは動作します。 merged_data.loc [merged_data ['Hours_Int']。isin(範囲(1,5))、 'Part_of_Day'] = '3' #Night merged_data.loc [merged_data ['Hours_Int']。isin(範囲(5) (12,17))、 'Part_of_Day'] = '1'#午後 merged_data。 '、' Part_of_Day '] =' 0 '#Morning merged_data.loc [merged_data [' Hours_Int ']。 merged_data ['Hours_Int']。isin(範囲(17,21))、 'Part_of_Day'] = '2' #Evening merged_data.loc [merged_data ['Hours_Int']。isin(範囲(21,25)) 、 'Part_of_Day'] = '3' #Night –

+0

私はあなたの質問に答えましたか? upvoteを検討しますか? –

関連する問題