我有以下数据框df
import pandas as pd
df = pd.DataFrame([[1, 1, 2, 2, 2, 3,4,5,5,5,6,6,6,6],
list('AABBBCDEEEFFFF'),
[1, 2, 3, 4, 5, 6,7,8,9,10,11,12,13,14],
[1, 2, 3, 4, 5, 6,7,8,9,11,12,11,11,11]]).T
df.columns = ['col1','col2','col3','col4']
df
Out[4]:
col1 col2 col3 col4
0 1 A 1 1
1 1 A 2 2
2 2 B 3 3
3 2 B 4 4
4 2 B 5 5
5 3 C 6 6
6 4 D 7 7
7 5 E 8 8
8 5 E 9 9
9 5 E 10 11
10 6 F 11 12
11 6 F 12 11
12 6 F 13 11
13 6 F 14 11
我按以下顺序按其列分组
df.groupby(['col1','col2','col3']).size()
Out[7]:
col1 col2 col3
1 A 1 1
2 1
2 B 3 1
4 1
5 1
3 C 6 1
4 D 7 1
5 E 8 1
9 1
10 1
6 F 11 1
12 1
13 1
14 1
如何为只有一个条目的组提取col3的值?
df_return
Out[4]:
col3
0 6
1 7
最佳答案
您可以通过将col1
和col2
传递给.groupby
,然后使用.filter
选择长度(即大小)等于1的组来执行此操作。
df_return = df.groupby(['col1','col2']).filter(lambda x: len(x) == 1)['col3']
print df_return
# 5 6
# 6 7
关于python - 在 Pandas 多索引数据框中选择只有1个条目的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49679447/