Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 当且仅当特定列的值丢失时,如何删除行?_Python_Pandas_Numpy_Dataframe_Missing Data - Fatal编程技术网

Python 当且仅当特定列的值丢失时,如何删除行?

Python 当且仅当特定列的值丢失时,如何删除行?,python,pandas,numpy,dataframe,missing-data,Python,Pandas,Numpy,Dataframe,Missing Data,我需要通过删除特定的行或列来处理缺少的值。我知道如何删除缺少值的列或行,但我需要的是一点不同。当且仅当两个特定列缺少值时,我需要删除行 以下是我尝试过的示例: # Basic libraries import os import pandas as pd import numpy as np data_dict = {'First':[100, 90, np.nan, np.nan], 'Second': [30, 45, 56, np.nan], 'Thi

我需要通过删除特定的行或列来处理缺少的值。我知道如何删除缺少值的列或行,但我需要的是一点不同。当且仅当两个特定列缺少值时,我需要删除行

以下是我尝试过的示例:

# Basic libraries
import os
import pandas as pd
import numpy as np

data_dict = {'First':[100, 90, np.nan, np.nan], 
        'Second': [30, 45, 56, np.nan], 
        'Third':[np.nan, 40, 80, np.nan],
        'Forth': [30,40,50,np.nan]}

df1 = pd.DataFrame(data_dict)
df1.dropna(subset=['First','Second'],inplace=True)
df1

如图所示,我试图删除
First==Nan
Second==Nan
的行。换句话说,我需要两个条件都是正确的。因此,我只需要删除最后一行,其中两个值均为Nan。因此,第2行不会被删除,因为满足了其中一个条件。不幸的是,如果满足其中一个条件,我使用的命令会删除行。

在中使用
how='all'
参数,因为默认值是
how='any'
,因此您不能工作:

如何操作:{'any','all'},默认为'any'
当我们至少有一个NA或所有NA时,确定是否从数据帧中删除行或列。
“any”:如果存在任何NA值,则删除该行或列。
'all':如果所有值均为NA,则删除该行或列

编辑:对于pass变量列表,请使用:

list_columns = ['First','Second','Third','Forth']
df1.dropna(subset=list_columns,inplace=True, how='all')

how=“all”
传递到
dropna
函数。@Swier非常感谢您的帮助,谢谢:)非常感谢。它工作得很好,但是将
列列表
传递给子集怎么样?i、 e.
list\u columns=['First','Second','Third','Forth']df1.dropna(subset=[list\u columns],inplace=True,how='all')
@QaddomiObaid-从
[list\u columns]
中删除
[]
,并使用
df1.dropna(subset=list\u columns,inplace=True,how='all')
list_columns = ['First','Second','Third','Forth']
df1.dropna(subset=list_columns,inplace=True, how='all')