在Python 3.4中从数据帧中删除NA值

2024-05-15 05:59:58 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd
import statistics

df=print(pd.read_csv('001.csv',keep_default_na=False, na_values=[""]))
print(df)

我正在使用此代码创建一个没有NA值的数据帧。我有几个CSV文件,我想计算其中一个列的平均值-硫酸盐。此列有许多“NA”值,我正试图排除这些值。即使使用了上述代码,“NA”也不会从数据帧中排除。 请建议。


Tags: csv数据代码importdefaultpandasdfread
3条回答

我认为应该按原样导入.csv文件,然后操作数据帧。 然后,您可以使用下面的任何方法。

foo[foo.notnull()]

或者

foo.dropna()

在添加axis=0how='any'之前,我得到了相同的错误。

df=df.dropna(axis=0, how='any')

方法1:

 df[['A','C']].apply(lambda x: my_func(x) if(np.all(pd.notnull(x[1]))) else x, axis = 1)

使用熊猫notnull

方法2:

df = df[np.isfinite(df['EPS'])]

方法3:使用dropnaHere

In [24]: df = pd.DataFrame(np.random.randn(10,3))

In [25]: df.ix[::2,0] = np.nan; df.ix[::4,1] = np.nan; df.ix[::3,2] = np.nan;

In [26]: df
Out[26]:
          0         1         2
0       NaN       NaN       NaN
1  2.677677 -1.466923 -0.750366
2       NaN  0.798002 -0.906038
3  0.672201  0.964789       NaN
4       NaN       NaN  0.050742
5 -1.250970  0.030561 -2.678622
6       NaN  1.036043       NaN
7  0.049896 -0.308003  0.823295
8       NaN       NaN  0.637482
9 -0.310130  0.078891       NaN

In [27]: df.dropna()     #drop all rows that have any NaN values
Out[27]:
          0         1         2
1  2.677677 -1.466923 -0.750366
5 -1.250970  0.030561 -2.678622
7  0.049896 -0.308003  0.823295

相关问题 更多 >

    热门问题