无法使用Pandas删除NaN值

2024-04-24 20:19:56 发布

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

我尝试使用Panda提供的dropna()方法删除NaN值。我已经阅读了文档并查看了其他StackOverflow帖子,但仍然无法修复错误。你知道吗

对于我的代码,我将首先读取一个excel文件。如果行的值为“-”,则将其更改为NaN值。之后,我将使用dropna()方法删除NaN值。然后,我将dropna()方法的结果重新分配给一个名为mydf2的新变量。下面是我的代码和截图

mydf = pd.read_excel('pandas lab datasets/singstats_maritalstatus.xlsx', 
na_values='-')

mydf = mydf.set_index(['Variables'])

print(mydf.head(5)) # Original data

mydf2 = mydf.dropna()
print(mydf2)

enter image description here


Tags: 文件方法代码文档错误nanstackoverflowexcel
3条回答

dropna()工作正常。你有两份打印报表。第一个已经按照print(mydf.head(5))的要求打印了五行。你知道吗

第二个print语句print(mydf2)的输出是一个空的数据帧[0行37列],因为显然每行都有一个NaN。(见截图底部)

我在这里写了一段代码,它可以很好地处理我的数据,所以试试这个。你知道吗

mydf = pd.read_excel('pandas lab datasets/singstats_maritalstatus.xlsx')
to_del = []
for i in range(mydf.shape[0]):
    if "-" in list(mydf.iloc[i]):
        to_del.append(i)
        out_df = mydf.drop(to_del, axis=0)

听起来NaN是一个字符串,所以:

mydf2 = mydf.replace('-',np.nan).dropna()

相关问题 更多 >