我有一个数据框列表,其中一些数据框的值为NaN
。到目前为止,我可以使用此link标识单个数据框的NaN
值。
如何找到数据框具有NaN
值的列表索引。
dffs
的示例列表,
[
var1 var1
14.171250 13.593813
13.578317 13.595329
10.301850 13.580139
9.930217 NaN
6.192517 13.561943
NaN 13.565149
6.197983 13.572509,
var1 var2
2.456183 5.907528
5.052017 5.955731
5.960000 5.972480
8.039317 5.984608
7.559217 5.985348
6.933633 5.979438,
var1 var1
14.171250 23.593813
23.578317 23.595329
56.301850 23.580139
90.930217 22.365676
89.192517 33.561943
86.23654 53.565149
NaN 13.572509,
...]
我需要将结果放在indexes
0
和2
的{{1}}值列表中。
到目前为止,我试过这个,
NaN
按照df_with_nan = []
for df in dffs:
df_with_nan.append(df.columns[df.isnull().any()])
循环,我得到了列名for
和var1
。但是,当我遍历它时,我需要那些数据帧的索引。任何帮助或建议都会很棒。
答案 0 :(得分:2)
您可以使用条件列表推导来枚举列表中的所有数据帧,并返回包含任何空值的枚举索引值。
df_with_nan = [n for n, df in enumerate(dffs) if sum(df.isnull().any())]
答案 1 :(得分:1)
你几乎就在那里......只需使用enumerate
循环索引,df.isnull().values.any()
(比df.isnull().any().max()
更快)来测试:
df_with_nan = []
for i, df in enumerate(dffs):
if df.isnull().values.any():
df_with_nan.append(i)
当然,列表组合更短,但可以选择任何你喜欢的方式。