使用Python删除数据集中缺少特定列数据的行

2024-05-13 21:32:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图确定在特定列(索引2)中哪些行的值为nan,并删除那些具有nan的行,或者将那些没有nan的行移到它们自己的数据帧中。有没有关于如何走这两条路的建议

我试图创建一个包含所有行和指定列的向量,但是数据类型对象给我带来了麻烦。此外,我还尝试创建一个列表,并将该特定列中!= 'nan'的所有行添加到列表中

patientsDD = patients.iloc[:,2].values

ddates = []
for value in patients[:,2]:
    if value != 'nan':
        ddates.append(value)

我希望它返回索引2中!= 'nan'的所有行,但没有向列表中添加任何内容,我收到的错误是'(slice(None, None, None), 2)' is an invalid key

我是一个新手,所以我真的很感谢任何帮助


Tags: 数据对象none列表valuenan向量建议
2条回答

您可以使用熊猫的.isna()

patients[!patients.iloc[:, 2].isna()]

您可以只选择不是nan的行,而不是删除nan的行

您可以尝试这样做(假设df是数据帧的名称):

import numpy as np
df1 = df[np.isfinite(df['index 2'])]

这将为您提供一个新的数据帧df1,其中只有列索引2中具有有限值的行。您还可以尝试以下操作:

import pandas as pd
df1 = df[pd.notnull(df['index 2'])]

如果要删除任何列中具有NaN值的所有行,可以使用以下方法:

df1 = df.dropna()

相关问题 更多 >