【发布时间】:2019-07-12 14:46:58
【问题描述】:
我有一个类似于下面的数据框
df = pd.DataFrame.from_dict({'cat1':['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'D', 'D', 'D'], 'cat2':[['X','Y'], ['F'], ['X','Y'], ['Y'], ['Y'], ['Y'], ['Z'], ['P','W'],['L','K'],['L','K'],['L','K']]})
输出是
cat1 cat2
0 A [X, Y]
1 A [F]
2 A [X, Y]
3 B [Y]
4 B [Y]
5 C [Y]
6 C [Z]
7 C [P, W]
8 D [L, K]
9 D [L, K]
10 D [L, K]
我想过滤掉B和D,B和D只有'Y'和['L','K']。
期望的输出:
cat1 cat2
0 A [X, Y]
1 A [F]
2 A [X, Y]
3 C [Y]
4 C [Z]
5 C [P, W]
我已经尝试过df.groupby(['cat1'])['cat2'].unique()yet,因为它是一个列表列。它不会起作用。
提前谢谢你
【问题讨论】:
-
明确一点,您只需要 Cat1 的 A 和 C 行对吗?