在python中,如何从数据帧中删除nan值?

2024-09-30 05:21:38 发布

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

我有一个excel文件,我从它的列中创建了列表。问题是列的行不相等。因此,在列表的末尾有多个“nan”值。我试图用dropna()方法删除它们,但仍然存在“nan”值。这是我的密码:

import pandas as pd

excel_name = r'file_name.xlsx'
df = pd.read_excel(excel_name, engine='openpyxl')
df.dropna()

clomun_1 = list(df['clomun1'])
clomun_2 = list(df['clomun2'])
clomun_3 = list(df['clomun3'])
print(clomun_1)
print(clomun_2)
print(clomun_3)

输出:

clomun_1 = ['value1', 'value2', 'value3', 'value4', 'nan', 'nan', 'nan', 'nan']
clomun_2 = ['value1', 'value2', 'value3', 'value4', 'value5', 'value6', 'nan', 'nan']
clomun_3 = ['value1', 'value2', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan']

我只想保留价值观。我必须删除“nan”元素


Tags: 文件namedf列表nanexcellistpd
2条回答

您可以使用lambda函数来实现这一点

clomun_1_new= [x for x in clomun_1 if x!='nan']

对其他两个列表重复相同的操作

试试这个:

df = pd.read_excel(excel_name, engine='openpyxl', na_values=['nan']) #add na_values

clomun_1 = df['clomun1'].dropna().tolist()

print(clomun_1)

['value1', 'value2', 'value3', 'value4']

相关问题 更多 >

    热门问题