相关疑难解决方法(0)

如何删除某些列中的值为NaN的Pandas DataFrame行

我有一个DataFrame:

>>> df
                 STK_ID  EPS  cash
STK_ID RPT_Date                   
601166 20111231  601166  NaN   NaN
600036 20111231  600036  NaN    12
600016 20111231  600016  4.3   NaN
601009 20111231  601009  NaN   NaN
601939 20111231  601939  2.5   NaN
000001 20111231  000001  NaN   NaN
Run Code Online (Sandbox Code Playgroud)

然后我只想要那些EPS不是NaN,df.drop(....)即将返回数据帧的记录,如下所示:

                  STK_ID  EPS  cash
STK_ID RPT_Date                   
600016 20111231  600016  4.3   NaN
601939 20111231  601939  2.5   NaN
Run Code Online (Sandbox Code Playgroud)

我怎么做?

python nan dataframe pandas

661
推荐指数
9
解决办法
81万
查看次数

在pandas dataframe中显示具有一个或多个NaN值的行

我有一个数据框,其中一些行包含缺少的值.

In [31]: df.head()
Out[31]: 
                             alpha1  alpha2    gamma1    gamma2       chi2min  
filename                                                                        
M66_MI_NSRh35d32kpoints.dat  0.8016  0.9283  1.000000  0.074804  3.985599e+01   
F71_sMI_DMRI51d.dat          0.0000  0.0000       NaN  0.000000  1.000000e+25   
F62_sMI_St22d7.dat           1.7210  3.8330  0.237480  0.150000  1.091832e+01   
F41_Car_HOC498d.dat          1.1670  2.8090  0.364190  0.300000  7.966335e+00   
F78_MI_547d.dat              1.8970  5.4590  0.095319  0.100000  2.593468e+01 
Run Code Online (Sandbox Code Playgroud)

我想在屏幕上的那些行上显示.如果我尝试df.isnull(),它会给出一个带有True和的长数据帧False.有什么方法可以选择这些行并在屏幕上打印它们吗?

python nan dataframe pandas

40
推荐指数
4
解决办法
5万
查看次数

Python pandas:选择列值为null/None/nan的行

如何选择列中的值为none的DataFrame的那些行?

我把这些编码为np.nan和这种类型无法匹配.

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: df = pd.DataFrame([[1, 2, 3], [3, 4, None]])

In [4]: df
Out[4]: 
   0  1    2
0  1  2  3.0
1  3  4  NaN

In [5]: df = df.fillna(np.nan)

In [6]: df
Out[6]: 
   0  1    2
0  1  2  3.0
1  3  4  NaN

In [7]: df.iloc[1][2]
Out[7]: nan

In [8]: df.iloc[1][2] == np.nan
Out[8]: False

In [9]: df[df[2] == None]
Out[9]: 
Empty …
Run Code Online (Sandbox Code Playgroud)

python pandas

14
推荐指数
1
解决办法
3万
查看次数

Python Pandas-选择多列为空的行

我想选择具有多列(以下示例中的 4 列)的行作为空值。我使用了以下代码:

data[(data['relevent_experience'].isnull())&data['education_level'].isnull())&data['major_disciplne'].isnull())&data['relevent_experience'].isnull())]
Run Code Online (Sandbox Code Playgroud)

这是一段非常复杂的代码。有没有更干净的方法来做同样的事情?

python null pandas

8
推荐指数
0
解决办法
2万
查看次数

无法将nan转换为int(但没有nans)

我有一个数据框,其中包含一列我要转换为int的浮点数:

> df['VEHICLE_ID'].head()
0    8659366.0
1    8659368.0
2    8652175.0
3    8652174.0
4    8651488.0
Run Code Online (Sandbox Code Playgroud)

从理论上讲,我应该能够使用:

> df['VEHICLE_ID'] = df['VEHICLE_ID'].astype(int)
Run Code Online (Sandbox Code Playgroud)

但我得到:

Output: ValueError: Cannot convert NA to integer
Run Code Online (Sandbox Code Playgroud)

但我很确定本系列中没有NaN:

> df['VEHICLE_ID'].fillna(999,inplace=True)
> df[df['VEHICLE_ID'] == 999]
> Output: Empty DataFrame
Columns: [VEHICLE_ID]
Index: []
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

pandas

5
推荐指数
2
解决办法
2万
查看次数

在熊猫中,如何选择包含 NaN 的行?

假设我有以下数据框df

a     | b     | c
------+-------+-------
5     | 2     | 4
NaN   | 6     | 8
5     | 9     | 0
3     | 7     | 1
Run Code Online (Sandbox Code Playgroud)

如果我这样做df.loc[df['a'] == 5],它将正确返回第一行和第三行,但是如果我这样做,df.loc[df['a'] == np.NaN]它什么都不返回。

我认为这更像是蟒蛇而不是熊猫。如果我np.nan与任何东西进行比较,甚至np.nan == np.nan会评估为False,所以问题是,我应该如何测试np.nan

python numpy pandas

3
推荐指数
1
解决办法
6437
查看次数

选择数据帧中至少一列为 NaN 的行

我们都知道著名的问题:如何删除 Pandas DataFrame 中某一列值为 NaN 的行

但是如何选择 pandas dataframe 中的行df,其中至少一列为 NaN。以便:

df
   columnA columnB
0   NaN        1
1   1          2
2   NaN       NaN
3   1         NaN
Run Code Online (Sandbox Code Playgroud)

将导致:

df
   columnA columnB
0   NaN        1
2   NaN       NaN
3   1         NaN
Run Code Online (Sandbox Code Playgroud)

python pandas

1
推荐指数
1
解决办法
2004
查看次数

标签 统计

pandas ×7

python ×6

dataframe ×2

nan ×2

null ×1

numpy ×1