python - 当特定列在pandas中具有空值时选择数据

标签 python pandas

我有一个数据框,其中有2个我要过滤的日期字段,并且当任何一个日期字段为null时,都可以查看行。

ID          Date1       Date2
58844880    04/11/16    NaN
59745846    04/12/16    04/14/16
59743311    04/13/16    NaN
59745848    04/14/16    04/11/16
59598413    NaN         NaN
59745921    04/14/16    04/14/16
59561199    04/15/16    04/15/16
NaN         04/16/16    04/16/16
59561198    NaN         04/17/16

它应该如下图所示
ID          Date1       Date2
58844880    04/11/16    NaN
59743311    04/13/16    NaN
59598413    NaN         NaN
59561198    NaN         04/17/16

尝试过代码df = (df['Date1'].isnull() | df['Date1'].isnull())

最佳答案

使用 boolean indexing :

mask = df['Date1'].isnull() | df['Date2'].isnull()
print (df[mask])
           ID     Date1     Date2
0  58844880.0  04/11/16       NaN
2  59743311.0  04/13/16       NaN
4  59598413.0       NaN       NaN
8  59561198.0       NaN  04/17/16

时间:
#[900000 rows x 3 columns]
df = pd.concat([df]*100000).reset_index(drop=True)

In [12]: %timeit (df[df['Date1'].isnull() | df['Date2'].isnull()])
10 loops, best of 3: 89.3 ms per loop

In [13]: %timeit (df[df.filter(like='Date').isnull().any(1)])
10 loops, best of 3: 146 ms per loop

关于python - 当特定列在pandas中具有空值时选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40408471/

相关文章:

python - Pandas , python 有多少列?

Python Pandas Dataframe - 使用使用行值和列名的计算填充空列

python - 如何对多个文件中的数据进行一次热编码

python - 在 Mac OS 10.13.5 上安装后,fabric 几乎无法工作

python - 如何在 mac os x 10.7.2 Lion 上安装 PIL

python - 根据列名替换值

python - pandas - 从列中提取大于阈值的值

python - 如何使用管道和 FeatureUnion 添加功能

Python赋值解构

python - 从 for 循环到列表理解