如何使用 PANDAS 获取具有 NAN 值的列名并将这些列名存储在列表中? [复制]
Posted
技术标签:
【中文标题】如何使用 PANDAS 获取具有 NAN 值的列名并将这些列名存储在列表中? [复制]【英文标题】:How to obtain Column Names having NAN values using PANDAS and store those column names in a List? [duplicate] 【发布时间】:2021-05-04 00:19:00 【问题描述】:我有一个如下的数据框,
df = pd.DataFrame('A': [1, 2, 3, 4, 5],
'B': [1, Nan, 2, 3, 4],
'C': [2, 3, Nan, Nan,5],
'D': [5, 6, 6, 7, 8],
'E': [Nan, 2, 3, 4, 5])
A B C D E
0 1 1 2 5 Nan
1 2 Nan 3 6 2
2 3 2 Nan 6 3
3 4 3 Nan 7 4
4 5 4 5 8 5
在这里,我使用df.dropna(axis=1,inplace=True)
删除数据框中具有NAN
的列。
但在删除这些列之前,我需要捕获具有 NAN
值的列并将这些列名存储在 List 中。
例如:在上面的数据框中,我们在 B、C 和 E 列中有 NAN
。所以这些列名必须首先存储在列表中 [B,C,E] 然后删除所有这些列。
关于如何将这些列名存储在列表中的任何建议?
【问题讨论】:
@yudhiesh 感谢分享。我得到了问题的答案 【参考方案1】:我认为应该这样做:
import pandas as pd
import numpy as np
df = pd.DataFrame('A': [1, 2, 3, 4, 5],
'B': [1, np.nan, 2, 3, 4],
'C': [2, 3, np.nan, np.nan,5],
'D': [5, 6, 6, 7, 8],
'E': [np.nan, 2, 3, 4, 5])
final = df.isna().sum()
listOfColumns = []
for i,j in zip(final,list(df.columns)):
if i > 0:
listOfColumns += j
else:
pass
print(listOfColumns)
如果您只想检查列中 Null / Nan 值的数量,您可以简单地运行:
df.isna().sum()
【讨论】:
以上是关于如何使用 PANDAS 获取具有 NAN 值的列名并将这些列名存储在列表中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
查找具有 NaN 值的 DataFrame 列表的索引 - Pandas
将具有多个 nan 值的 pandas 系列减少到一个集合会给出多个 nan 值