以下は私のデータフレームの小さなサンプルです:私は希望の結果を与えていないgroupby.applyを試しています。groupby apply希望する出力が得られない
In [204]: df1
Out[204]:
Location_ID Terminal Time
0 10000001405702 *WhF 2016-07-01 13:56:00
1 10000001405702 @W1n 2016-07-01 09:14:39
2 10000001405702 *Wu3 2016-07-01 11:54:52
3 10000001405702 @WJo 2016-07-01 11:30:57
4 10000001405702 @WCg 2016-07-01 11:06:24
5 10000001405702 *WL2 2016-07-01 10:04:20
6 10000001201132 A24O 2016-07-01 14:28:39
7 10000000564967 2JT1 2016-07-01 03:46:31
8 10000000615068 A125 2016-07-01 21:58:33
9 10000000552415 5MTH 2016-07-01 05:51:39
10 10000001405702 *WqW 2016-07-01 00:09:06
11 10000000250413 FF41 2016-07-01 02:59:43
12 10000001125037 WQ2I 2016-06-30 14:03:57
13 10000000174015 H5NM 2016-06-30 05:56:09
14 10000001856529 AR7K 2016-06-30 18:53:05
下記のようにgroupby.applyを実行すると、Location_IDと端末情報が失われていますが、私はそれが必要です。
In [206]: df1.groupby(['Location_ID','Terminal'])['Time'].apply(lambda x : x.diff()<=dt.timedelta(seconds=60))
Out[206]:
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 False
8 False
9 False
10 False
11 False
12 False
13 False
14 False
15 False
16 False
17 False
ブール情報をLocation_IDとTerminalで知ることができるように、以下の形式の出力が必要です。
In [211]: df3
Out[211]:
Time
Location_ID Terminal
10000000000081 3ZR1 False
CDE1 True
CDE4 False
GIG2 True
L43L False
L43W False
W9YE True
YIW1 False
YIW4 True
ZYI7 True
ZYJN False
10000000000086 A1E6 False
A4DG True
まだパンダで私のグリップを見つけようとしています。前もって感謝します。
あなたは何をしようとしていますか?期待される出力からは分かりません... –
これはトランザクションデータです。あるlocation_IDで、60秒以下でトランザクションが発生している端末の数。 –