我的数据框是
ID Alphabet Number1 Number2
1 A NaN 9
1 A 3 5
1 A 1 4
1 A 2 4
2 B 7 3
2 B 2 8
2 B 4 1
2 B 8 5
3 C 2 2
3 C 1 9
4 D 2 3
4 D 6 2
4 D 8 NaN
我通过
获得了独特的字母表df.groupby('Alphabet')['ID'].nunique()
,结果是
A 1
B 1
C 1
D 1
但我想存储没有丢失数据的字母 我希望结果看起来像
B 1
C 1
从此控制台结果中,我如何将“B”和“C”存储到列表中?
答案 0 :(得分:0)
IIUC,使用all()
s=df.groupby('Alphabet').apply(lambda x : x.notnull().all()).all(1)
df.groupby('Alphabet').ID.nunique()[s[s].index]
Out[1082]:
Alphabet
B 1
C 1
Name: ID, dtype: int64
或
df.loc[~df.Alphabet.isin(df.loc[s[s].index,'Alphabet'])].groupby('Alphabet').ID.nunique()
Out[1095]:
Alphabet
B 1
C 1
Name: ID, dtype: int64