首页 > 解决方案 > 如何使用熊猫保持真值和无值?

问题描述

我有一个数据框

import pandas as pd
data = {'a': [1,2,3,None,4,None,2,4,5,None],'b':[6,6,6,'NaN',4,'NaN',11,11,11,'NaN']}
df = pd.DataFrame(data)
condition = (df['a']>2) | (df['a'] == None)
print(df[condition])

     a    b
  0  1.0    6
  1  2.0    6
  2  3.0    6
  3  NaN  NaN
  4  4.0    4
  5  NaN  NaN
  6  2.0   11
  7  4.0   11
  8  5.0   11
  9  NaN  NaN

在这里,我必须保持条件为真,而在哪里没有,我也想保留这些行。

预期输出为:

      a    b
  2  3.0    6
  3  NaN  NaN
  4  4.0    4
  5  NaN  NaN
  7  4.0   11
  8  5.0   11
  9  NaN  NaN

提前致谢

标签: pandasdataframepython-3.7

解决方案


您可以使用另一个|或条件(注意:请参阅@ALlolz 的评论,您不应该将系列与 进行比较np.nan

condition = (df['a']>2) | (df['a'].isna())
df[condition]

     a    b
2  3.0    6
3  NaN  NaN
4  4.0    4
5  NaN  NaN
7  4.0   11
8  5.0   11
9  NaN  NaN

推荐阅读