各エントリは順序である私はpd.DataFrame
Groupbyとany()|すべての()
In [155]: df1
Out[155]:
ORDER_ID ACQ DATE UID
2 3 False 2014-01-03 1
3 4 True 2014-01-04 2
4 5 False 2014-01-05 3
6 7 True 2014-01-08 5
7 8 False 2014-01-08 5
9 10 False 2014-01-10 6
0 11 False 2014-01-11 6
以下、ORDER_ID
、DATE
、UID
とACQ
の値を有する(これはデータセットに関連UID
ための一次であるかどうかを示す)を有します。
データセットに記載されている期間内に最初の注文を行ったユーザー(つまり、そのようなユーザーの注文の少なくとも1つがACQ == True
を満たしている)によってフィルタされ、すべての注文を保持しようとしています。
ので、所望の出力は次のようになります。
ORDER_ID ACQ DATE UID
3 4 True 2014-01-04 2
6 7 True 2014-01-08 5
7 8 False 2014-01-08 5
と私がすることによってこれを達するために管理している:私は、ユーザーが置かれたすべての注文を見つけるためにしようとすると、しかし
In [156]: df1.groupby('UID').filter(lambda x: x.ACQ.any() == True)
Out[156]:
ORDER_ID ACQ DATE UID
3 4 True 2014-01-04 2
6 7 True 2014-01-08 5
7 8 False 2014-01-08 5
データセットでカバーされている時間外に最初の注文をした(つまり、すべての注文がACQ == False
を満たすはずです)私は失われているようです。私はこれを試してみました:
In [159]: df1.groupby('UID').filter(lambda x: x.ACQ.all() == False)
Out[159]:
ORDER_ID ACQ DATE UID
2 3 False 2014-01-03 1
4 5 False 2014-01-05 3
6 7 True 2014-01-08 5 ## <- This order is an acquisition, therefore all orders with UID == 5 should be filtered out.
7 8 False 2014-01-08 5
9 10 False 2014-01-10 6
0 11 False 2014-01-11 6
は、どのように私はすべての彼らの受注はACQ == False
を満たしているユーザーによってすべての注文をフィルタリングについては行くべき?
アイデアは大変ありがとうございます。
、先端に感謝役立ちました! – Thanos