2017-01-27 11 views
2

padasのデータフレームで何日に亘って反復処理を行うことができますか?日数の繰り返し(パンダ)

例:

マイデータフレーム:

        time consumption 
time 
2016-10-17 09:00:00 2016-10-17 09:00:00 2754.483333 
2016-10-17 10:00:00 2016-10-17 10:00:00 2135.966666 
2016-10-17 11:00:00 2016-10-17 11:00:00 1497.716666 
2016-10-17 12:00:00 2016-10-17 12:00:00 448.100000 
2016-10-24 09:00:00 2016-10-24 09:00:00 1527.716666 
2016-10-24 10:00:00 2016-10-24 10:00:00 1219.833333 
2016-10-24 11:00:00 2016-10-24 11:00:00 1284.350000 
2016-10-24 12:00:00 2016-10-24 12:00:00 14195.633333 
2016-10-31 09:00:00 2016-10-31 09:00:00 2120.933333 
2016-10-31 10:00:00 2016-10-31 10:00:00 1630.700000 
2016-10-31 11:00:00 2016-10-31 11:00:00 1241.866666 
2016-10-31 12:00:00 2016-10-31 12:00:00 1156.266666 

擬似コード:

for day in df: 
    print day 

第1の反復リターン:

        time consumption 
time 
2016-10-17 09:00:00 2016-10-17 09:00:00 2754.483333 
2016-10-17 10:00:00 2016-10-17 10:00:00 2135.966666 
2016-10-17 11:00:00 2016-10-17 11:00:00 1497.716666 
2016-10-17 12:00:00 2016-10-17 12:00:00 448.100000 

第2の反復リターン:

2016-10-24 09:00:00 2016-10-24 09:00:00 1527.716666 
2016-10-24 10:00:00 2016-10-24 10:00:00 1219.833333 
2016-10-24 11:00:00 2016-10-24 11:00:00 1284.350000 
2016-10-24 12:00:00 2016-10-24 12:00:00 14195.633333 

3回目の反復のリターン:dateによって

2016-10-31 09:00:00 2016-10-31 09:00:00 2120.933333 
2016-10-31 10:00:00 2016-10-31 10:00:00 1630.700000 
2016-10-31 11:00:00 2016-10-31 11:00:00 1241.866666 
2016-10-31 12:00:00 2016-10-31 12:00:00 1156.266666 

答えて

1

使用groupbydayなど少し違うものです:

#groupby by index date 
for idx, day in df.groupby(df.index.date): 
    print (day) 
            time consumption 
time             
2016-10-17 09:00:00 2016-10-17 09:00:00 2754.483333 
2016-10-17 10:00:00 2016-10-17 10:00:00 2135.966666 
2016-10-17 11:00:00 2016-10-17 11:00:00 1497.716666 
2016-10-17 12:00:00 2016-10-17 12:00:00 448.100000 
            time consumption 
time             
2016-10-24 09:00:00 2016-10-24 09:00:00 1527.716666 
2016-10-24 10:00:00 2016-10-24 10:00:00 1219.833333 
2016-10-24 11:00:00 2016-10-24 11:00:00 1284.350000 
2016-10-24 12:00:00 2016-10-24 12:00:00 14195.633333 
            time consumption 
time             
2016-10-31 09:00:00 2016-10-31 09:00:00 2120.933333 
2016-10-31 10:00:00 2016-10-31 10:00:00 1630.700000 
2016-10-31 11:00:00 2016-10-31 11:00:00 1241.866666 
2016-10-31 12:00:00 2016-10-31 12:00:00 1156.266666 

または:でき

#groupby by column time 
for idx, day in df.groupby(df.time.dt.date): 
    print (day) 
            time consumption 
time             
2016-10-17 09:00:00 2016-10-17 09:00:00 2754.483333 
2016-10-17 10:00:00 2016-10-17 10:00:00 2135.966666 
2016-10-17 11:00:00 2016-10-17 11:00:00 1497.716666 
2016-10-17 12:00:00 2016-10-17 12:00:00 448.100000 
            time consumption 
time             
2016-10-24 09:00:00 2016-10-24 09:00:00 1527.716666 
2016-10-24 10:00:00 2016-10-24 10:00:00 1219.833333 
2016-10-24 11:00:00 2016-10-24 11:00:00 1284.350000 
2016-10-24 12:00:00 2016-10-24 12:00:00 14195.633333 
            time consumption 
time             
2016-10-31 09:00:00 2016-10-31 09:00:00 2120.933333 
2016-10-31 10:00:00 2016-10-31 10:00:00 1630.700000 
2016-10-31 11:00:00 2016-10-31 11:00:00 1241.866666 
2016-10-31 12:00:00 2016-10-31 12:00:00 1156.266666 

違い最初の2行が異なるmonthで変更されるチェックイン:

for idx, day in df.groupby(df.index.day): 
    print (day) 
            time consumption 
time             
2016-09-17 09:00:00 2016-10-17 09:00:00 2754.483333 
2016-09-17 10:00:00 2016-10-17 10:00:00 2135.966666 
2016-10-17 11:00:00 2016-10-17 11:00:00 1497.716666 
2016-10-17 12:00:00 2016-10-17 12:00:00 448.100000 
            time consumption 
time             
2016-10-24 09:00:00 2016-10-24 09:00:00 1527.716666 
2016-10-24 10:00:00 2016-10-24 10:00:00 1219.833333 
2016-10-24 11:00:00 2016-10-24 11:00:00 1284.350000 
2016-10-24 12:00:00 2016-10-24 12:00:00 14195.633333 
            time consumption 
time             
2016-10-31 09:00:00 2016-10-31 09:00:00 2120.933333 
2016-10-31 10:00:00 2016-10-31 10:00:00 1630.700000 
2016-10-31 11:00:00 2016-10-31 11:00:00 1241.866666 
2016-10-31 12:00:00 2016-10-31 12:00:00 1156.266666 
for idx, day in df.groupby(df.index.date): 
    print (day) 
            time consumption 
time             
2016-09-17 09:00:00 2016-10-17 09:00:00 2754.483333 
2016-09-17 10:00:00 2016-10-17 10:00:00 2135.966666 
            time consumption 
time             
2016-10-17 11:00:00 2016-10-17 11:00:00 1497.716666 
2016-10-17 12:00:00 2016-10-17 12:00:00 448.100000 
            time consumption 
time             
2016-10-24 09:00:00 2016-10-24 09:00:00 1527.716666 
2016-10-24 10:00:00 2016-10-24 10:00:00 1219.833333 
2016-10-24 11:00:00 2016-10-24 11:00:00 1284.350000 
2016-10-24 12:00:00 2016-10-24 12:00:00 14195.633333 
            time consumption 
time             
2016-10-31 09:00:00 2016-10-31 09:00:00 2120.933333 
2016-10-31 10:00:00 2016-10-31 10:00:00 1630.700000 
2016-10-31 11:00:00 2016-10-31 11:00:00 1241.866666 
2016-10-31 12:00:00 2016-10-31 12:00:00 1156.266666 
関連する問題