仅从数据框中选择空行

Choose empty rows only from a dataframe

我有以下df

lst=[['01012021','A',10,''],['01012021','B',20,''],['02012021','A',12,'ss'],['02012021','B',23,'sv']]
df2=pd.DataFrame(lst,columns=['Date','FN','AuM','Alpha'])

是否有 loc / iloc 函数可以 return 以下数据帧(仅限空行)

lst=[['01012021','A',10,''],['01012021','B',20,'']]
df3=pd.DataFrame(lst,columns=['Date','FN','AuM','Alpha'])

感谢您的帮助。

您可以使用 .loc 过滤 Alpha 等于''的位置

df2.loc[df2['Alpha'] == '']

Returns:

       Date FN  AuM Alpha
0  01012021  A   10      
1  01012021  B   20      

只要您的空白是 alpha 始终是 '',这就会起作用

参见下面的 table 总结了识别 pandas

中的 null/False/empty 元素的各种方法

根据您在“Alpha”中可以拥有的其他值,您可以使用:

只保留空格

df2.loc[df2['Alpha'].eq('')]

保留所有“虚假”值

df2.loc[~df2['Alpha'].astype(bool)]

输出:

       Date FN  AuM Alpha
0  01012021  A   10      
1  01012021  B   20      

table 个 empty/falsy/zero-length 个值

df = pd.DataFrame({'data': [1, 'abc', True, 0, '', None,
                            float('nan'), False, [],
                            {}, set(), tuple([])]
                    })

df['type']   = df['data'].apply(lambda x: type(x).__name__)
df['isna']   = df['data'].isna().map({True: 'X', False: ''})
df['isnull'] = df['data'].isnull().map({True: 'X', False: ''})
df['~bool']  = (~df['data'].astype(bool)).map({True: 'X', False: ''})
df['len']    = df['data'].str.len().convert_dtypes()
df['len==0'] = df['data'].str.len().eq(0).map({True: 'X', False: ''})
print(df)

输出:

     data      type isna isnull ~bool   len len==0
0       1       int                    <NA>       
1     abc       str                       3       
2    True      bool                    <NA>       
3       0       int                 X  <NA>       
4               str                 X     0      X
5    None  NoneType    X      X     X  <NA>       
6     NaN     float    X      X        <NA>       
7   False      bool                 X  <NA>       
8      []      list                 X     0      X
9      {}      dict                 X     0      X
10     {}       set                 X     0      X
11     ()     tuple                 X     0      X