gpt4 book ai didi

python - pandas dataframe 按 nan 数删除列

转载 作者:太空狗 更新时间:2023-10-29 17:25:07 26 4
gpt4 key购买 nike

我有一个数据框,其中一些列包含 nan。我想删除那些具有一定数量的 nan 的列。例如,在下面的代码中,我想删除任何包含 2 个或更多 nan 的列。在这种情况下,“C”列将被删除,仅保留“A”和“B”。我该如何实现?

import pandas as pd
import numpy as np

dff = pd.DataFrame(np.random.randn(10,3), columns=list('ABC'))
dff.iloc[3,0] = np.nan
dff.iloc[6,1] = np.nan
dff.iloc[5:8,2] = np.nan

print dff

最佳答案

dropna 有一个thresh 参数,你只需要传递你的 df 的长度——你想要的 NaN 值的数量作为你的阈值:

In [13]:

dff.dropna(thresh=len(dff) - 2, axis=1)
Out[13]:
A B
0 0.517199 -0.806304
1 -0.643074 0.229602
2 0.656728 0.535155
3 NaN -0.162345
4 -0.309663 -0.783539
5 1.244725 -0.274514
6 -0.254232 NaN
7 -1.242430 0.228660
8 -0.311874 -0.448886
9 -0.984453 -0.755416

因此,上面将删除任何不符合 df 长度(行数)- 2 作为非 Na 值数的标准的列。

关于python - pandas dataframe 按 nan 数删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30923324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com