【发布时间】:2017-10-04 06:31:09
【问题描述】:
我正在尝试根据分组是否包含至少一个特定代码的出现来对数据帧进行子集化。
考虑这个例子
import pandas as pd
df = pd.DataFrame({'cId' : [1, 1, 1, 2, 2, 4, 4, 4, 4, 4],
'eId' : [1, 1, 1, 1, 1, 1, 1, 2, 2, 3],
'code' :['af', 'af', 'la', 'su', 'su', 'af', 'da', 'da', 'la', 'su'],
'data' : [1, 2, 3, 5, 3, 5, 2, 5, 2, 1]},
columns=['cId', 'eId', 'code', 'data'])
df
Out[10]:
cId eId code data
0 1 1 af 1
1 1 1 af 2
2 1 1 la 3
3 2 1 su 5
4 2 1 su 3
5 4 1 af 5
6 4 1 da 2
7 4 2 da 5
8 4 2 la 2
9 4 3 su 1
条目将按cId 和eId 分组。
我只想保留那些在code 在['af', 'da'] 中至少出现一次的组。
最终结果应该是
df
Out[10]:
cId eId code data
0 1 1 af 1
1 1 1 af 2
2 1 1 la 3
5 4 1 af 5
6 4 1 da 2
7 4 2 da 5
8 4 2 la 2
有什么建议吗?
【问题讨论】: