1
我有一個ID列和測量列數據幀大熊貓選擇特定的基團
ID measurement
1 A
1 B
1 C
1 D
2 A
2 B
2 C
2 D
3 A
4 A
4 B
4 C
4 D
4 E
我想選擇僅具有每ID完整測量(AD)的行和刪除行其或者具有更少(對於示例ID 3)或者每個ID的更多測量(例如ID 4)。
有沒有一種有效的方法來實現這一目標?
我有一個ID列和測量列數據幀大熊貓選擇特定的基團
ID measurement
1 A
1 B
1 C
1 D
2 A
2 B
2 C
2 D
3 A
4 A
4 B
4 C
4 D
4 E
我想選擇僅具有每ID完整測量(AD)的行和刪除行其或者具有更少(對於示例ID 3)或者每個ID的更多測量(例如ID 4)。
有沒有一種有效的方法來實現這一目標?
In [92]: df.groupby('ID').filter(lambda x: set(x['measurement']) == set('ABCD'))
Out[92]:
ID measurement
0 1 A
1 1 B
2 1 C
3 1 D
4 2 A
5 2 B
6 2 C
7 2 D
使用transform
In [1001]: df[df.groupby('ID')['measurement'].transform(lambda x: set(x) == set('ABCD'))]
Out[1001]:
ID measurement
0 1 A
1 1 B
2 1 C
3 1 D
4 2 A
5 2 B
6 2 C
7 2 D
不錯,狡猾的回答+1 – EdChum
@EdChum,謝謝!感謝您的評論! – MaxU