我应该如何从 python 中的数据框中删除 nan 值?
How should I remove nan values from a dataframe in 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”元素。
您可以使用 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']
我有一个 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”元素。
您可以使用 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']