这听起来像是一个非常愚蠢的问题,但我正在从 excel 导入文件,并注意到 pandas 处理的值在 VS Code 中应该是不同的 NaN。这是下面的视觉效果...
城市 | 状态 |
---|---|
“底特律” | '米' |
'芝加哥' | 南 |
南 | 'CA' |
这显然是一个小快照,但请注意,City 列中的第 3 行列为 nan,State 列中的第 2 行为 NaN。
问题是,当我使用
df.isna()
或 df.isnull()
时,它只会获取州列中的 NaN 值,而不是城市列中的值。不幸的是,我不能在这种情况下使用 keep_na_values = True
,因为我需要将这些值标记为 NaN,以便 .isna()
函数稍后可以识别它们。更奇怪的是excel文件中的单元格是空的,最重要的是我在Jupyter Notebook中似乎没有这个问题。
我试过使用
df.City.replace(to_replace = {'nan': 'NaN'},inplace = True)
但没有运气。我还遇到了下面的这篇文章,它建议使用
pd.read_excel(na_values = ['nan'])
但是这不允许 .isna()
或 .isnull() 获取值。
https://stackoverflow.com/questions/50685107/pandas-dataframe-nan-values-not-replacing
有没有人知道如何让 pandas 以一种方式而不是多种方式读取此文件中的所有 NaN 值?如果无法完成,那就是它。
你确定你引用的那些nan不仅仅是一串nan吗?如果他们可以进行替换并使用 numpy
手动将它们设置为 np.nanimport pandas as pd
import numpy as np
df = pd.DataFrame({
'Column_1' : ['A', 'nan', 'C'],
'Column_2' : ['1', '2', np.nan]
})
df = df.replace('nan', np.nan)
df.isna()