python - 删除包含 NaN、NaTs 和 nans 的任何列的行

标签 python pandas dataframe nan

目前我有如下数据:

df_all.head()
Out[2]: 
   Unnamed: 0 Symbol       Date      Close       Weight
0        4061      A 2016-01-13  36.515889   (0.000002)
1        4062     AA 2016-01-14  36.351784    0.000112 
2        4063    AAC 2016-01-15  36.351784   (0.000004)
3        4064    AAL 2016-01-19  36.590483    0.000006 
4        4065   AAMC 2016-01-20  35.934062    0.000002 

df_all.tail()
Out[3]: 
         Unnamed: 0 Symbol Date  Close Weight
1252498    26950320    nan  NaT   9.84    NaN
1252499    26950321    nan  NaT  10.26    NaN
1252500    26950322    nan  NaT   9.99    NaN
1252501    26950323    nan  NaT   9.11    NaN
1252502    26950324    nan  NaT   9.18    NaN

df_all.dtypes
Out[4]: 
Unnamed: 0             int64
Symbol                object
Date          datetime64[ns]
Close                float64
Weight                object
dtype: object

可以看出,我在 nan 的符号中获取值,在 Nat 中获取日期,在 NaN 中获取权重。

我的目标:我想删除任何包含 nan、Nat 或 NaN 的列的行,并得到一个新的 df_clean 作为结果

我似乎无法应用适当的过滤器?我不确定是否必须先转换数据类型(尽管我也试过了)

最佳答案

你可以使用

df_all.replace({'nan': None})[~pd.isnull(df_all).any(axis=1)]

这是因为 isnullNaNNaT 都识别为“空”值。

关于python - 删除包含 NaN、NaTs 和 nans 的任何列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39112973/

相关文章:

python - Apache Beam 管道导入错误故障排除 [BoundedSource 对象大于允许的限制]

python - 从列表中获取特定长度的字符串

python - 按条件获取 Pandas Dataframe 中元素的索引

r - 对于数据框中的每一行,根据日期范围创建多行

r - R 数据框子集取决于重复变量的值

python - 如何从数据框中选择给定列中的值不为 None 的行?

Python:脚本逐个字母而不是整个单词打印出字典值?

python - PANDAS:通过在其他列上应用条件从列中提取值

python - python中多列的索引匹配

python - 如何聚合扩展值 - python - pandas