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')