Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-基于集合NaN计数删除组_Python_Pandas - Fatal编程技术网

Python-基于集合NaN计数删除组

Python-基于集合NaN计数删除组,python,pandas,Python,Pandas,我有一个基于多个变量(温度、压力等)的不同气象站的数据集 我想删除“stationID”组,它们有超过一定数量的NAN(考虑计数中的所有变量) 如果我尝试 df.loc[df.groupby('station')['temperature'].filter(lambda x: len(x[pd.isnull(x)] ) < 30).index] df.loc[df.groupby('station')['temperature'].过滤器(λx:len(x[pd.isnull(x)])

我有一个基于多个变量(温度、压力等)的不同气象站的数据集

我想删除“stationID”组,它们有超过一定数量的NAN(考虑计数中的所有变量)

如果我尝试

df.loc[df.groupby('station')['temperature'].filter(lambda x: len(x[pd.isnull(x)] ) < 30).index]
df.loc[df.groupby('station')['temperature'].过滤器(λx:len(x[pd.isnull(x)])<30.索引]
它可以工作,如下所示:

但是上面的例子只考虑了“温度”。因此,我如何考虑可用变量的NaN总数?即:我想删除一个组,其中[variable1,variable2,variable3,…]中的NaN总数小于阈值。

这应该可以:

df.groupby('stationID').filter(lambda g: g.isnull().sum().sum() < 4)

@谢谢。我们似乎没有跨数据帧求和的函数。
df.groupby('stationID').filter(lambda g:g.isnull().values.sum()<3)
——关于值,您可以做一次
sum
df.groupby('stationID').filter(lambda g: g.isnull().sum().sum() < 4)
df.groupby('stationID').filter(lambda g: g.isnull().sum().sum() < 4)

   stationID    Time    Temperature Pressure
0        123       1           30.0   1010.5
1        123       2           31.0   1009.0
2        202       1           24.0      NaN
3        202       2           24.3      NaN
4        202       3            NaN   1000.3


df.groupby('stationID').filter(lambda g: g.isnull().sum().sum() < 3)

   stationID    Time    Temperature Pressure
0        123       1           30.0   1010.5
1        123       2           31.0   1009.0