Python 选择数据帧中最多有一个空条目的行

Python 选择数据帧中最多有一个空条目的行,python,pandas,dataframe,nan,Python,Pandas,Dataframe,Nan,如果我需要从数据帧中进行选择,其中col1和col2列必须符合以下条件:这些列中至少有一列不能为null 现在,我正在尝试执行以下操作,但它不起作用 df=df.loc[(df['Cat1_L2'].isnull()) & (df['Cat2_L3'].isnull())==False] 设置 (修改U8远期数据) 使用isna编制索引+sum 修复代码时,请确保True案例数(对应于列中的NaN)小于2 df[df[['Cat1_L2', 'Cat3_L3']].isna().su

如果我需要从数据帧中进行选择,其中col1和col2列必须符合以下条件:这些列中至少有一列不能为null

现在,我正在尝试执行以下操作,但它不起作用

df=df.loc[(df['Cat1_L2'].isnull()) & (df['Cat2_L3'].isnull())==False]

设置
(修改U8远期数据)


使用isna编制索引+
sum
修复代码时,请确保
True
案例数(对应于列中的
NaN
)小于2

df[df[['Cat1_L2', 'Cat3_L3']].isna().sum(axis=1) < 2]

   Cat1_L2  Cat3_L3
0      1.0      NaN
1      NaN      3.0
2      3.0      4.0

一种方法是使用
itertuples()
在每一行上循环。Beaware认为这在计算上是昂贵的

1-创建一个列表,使用iTerPles()为每一行更改您的条件。

2。将列表转换为熊猫系列

condition_list = []
for row in df.itertuples():
    if (row.Cat1_L2 != None) or (row.Cat2_L3 != None):
       condition_list.append(1)
    else:
       condition_list.append(0)
 condition_series = pd.Series(condition_list)
3。将系列附加到原始df上

df['condition_column'] = condition_series.values
df_new = df[df.condition_column == 1]
del df_new['condition_column']
4。过滤器df

df['condition_column'] = condition_series.values
df_new = df[df.condition_column == 1]
del df_new['condition_column']

谢谢你的支持,感谢你的回答。请坚持下去,继续学习+1.