2017-08-08 9 views
1

出発時刻と到着時刻の時間差が30分未満または負の場合、値を30とするにはどうすればよいですか?私は30であることを時間差の最小値を設定したい私は、時間差時差の最小値を設定する方法は?

df['time difference'] = ((df['departure time'] - df['arrival time']).abs()) 

を見つけるために、次の式を使用し

id   departure time    arrival time   start end capacity 

Train A 2016-05-19 01:45:00  2016-05-19 08:25:00 A  G 2 
Train A 2016-05-19 16:54:00  2016-05-19 16:00:00 B  H 2 
Train A 2016-05-19 21:25:00  2016-05-20 07:25:00 C  I 3 
Train B 2016-05-24 02:20:00  2016-05-24 12:50:00 D  J 3 
Train B 2016-05-24 18:30:00  2016-05-25 20:00:00 E  K 2 
Train B 2016-05-26 19:35:00  2016-05-26 19:45:00 F  L 3 

例えば、私は次のデータ型を持っています、)値が30未満または負の場合

+0

なぜあなたはグループバイをやっていますか? –

+0

削除!!!!! –

答えて

1

total_secondsで列を減算して分に変換し、60を最初にdをmaskに置き換えます。

diff = (df['departure time'] - df['arrival time']).dt.total_seconds()/60 
df['time difference'] = diff.mask(diff < 30, 30) 
print (df) 
     id  departure time  arrival time start end capacity \ 
0 Train A 2016-05-19 01:45:00 2016-05-19 08:25:00  A G   2 
1 Train A 2016-05-19 16:54:00 2016-05-19 16:00:00  B H   2 
2 Train A 2016-05-19 21:25:00 2016-05-20 07:25:00  C I   3 
3 Train B 2016-05-24 02:20:00 2016-05-24 12:50:00  D J   3 
4 Train B 2016-05-24 18:30:00 2016-05-25 20:00:00  E K   2 
5 Train B 2016-05-26 19:35:00 2016-05-26 19:45:00  F L   3 

    time difference 
0    30.0 
1    54.0 
2    30.0 
3    30.0 
4    30.0 
5    30.0 
+0

こんにちは!私は負の時間差を与えるデータはほとんどありません。その場合、値は格納されません。あなたはnull値を30分で置き換える方法を知っていますか?ありがとうございました! –

+0

負の値はデータのマイナーなエラーによるものです(時間の負の違いはありえません) –

+0

'mask'と思っていますか、それともうまくいきませんか? – jezrael

関連する問題