gpt4 book ai didi

python - 当且仅当特定列的值缺失时如何删除行?

转载 作者:行者123 更新时间:2023-12-05 02:47:51 24 4
gpt4 key购买 nike

我需要通过删除特定行或列来处理缺失值。我知道如何删除包含缺失值的列或行,但我需要的有点不同。当且仅当两个特定列有缺失值时,我才需要删除这些行。

这是我试过的例子:

# 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==NanSecond==Nan 的行。换句话说,我需要两个条件都正确。因此,我只需要删除最后一行,其中两个值都是 Nan。 因此,由于满足其中一个条件,因此不会删除第 2 行。不幸的是,如果满足其中一个条件,我使用的命令会删除行。

最佳答案

DataFrame.dropna 中使用 how='all' 参数,因为默认值是 how='any',所以你不工作:

how: {'any', 'all'}, default 'any'
Determine if row or column is removed from DataFrame, when we have at least one NA or all NA.
'any' : If any NA values are present, drop that row or column.
'all' : If all values are NA, drop that row or column.

df1.dropna(subset=['First','Second'],inplace=True, how='all')
print (df1)
First Second Third Forth
0 100.0 30.0 NaN 30.0
1 90.0 45.0 40.0 40.0
2 NaN 56.0 80.0 50.0

编辑:对于传递变量列表使用:

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

关于python - 当且仅当特定列的值缺失时如何删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64803927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com