gpt4 book ai didi

Python - 不识别 Null 值,即使它存在于 Pandas Dataframe 中

转载 作者:行者123 更新时间:2023-12-05 02:17:28 26 4
gpt4 key购买 nike

我正在读取一个 csv 文件并从中创建一个 Pandas Dataframe。它有许多不同数据类型的列。

假设“localHour”列仅包含数值,但不幸的是它包含“空”值,因为它可以在 Microsoft Excel/Open Office 应用程序中看到,甚至 Pandas 中的 unique() 方法也显示它包含“空”值

df1['localHour'].unique()

Out[78]:
array(['9', '12', '17', '16', '22', '19', '11', '15', '6', '18', '7', '21',
'13', '20', '23', '10', '14', '8', '5', '3', '1', '0', '2', '4',
'null', '-1'], dtype=object)

但令人惊讶的是 isnull() 方法没有在列中找到任何空值。我不明白这里出了什么问题

df1['localHour'].isnull().values.any()
Out[80]: False

df1['localHour'].isnull().unique()
Out[81]: array([False], dtype=bool)

最佳答案

那些不是数字,那些是数字的字符串表示。
并且字符串 'null' 不被 Python 理解为表示 NoneNaN 或其他类似的空引用。按原样,'null' 仅被视为包含字符 n-u-l-l 的字符串。

使用to_numeric()转换列,然后您会看到正确识别了空值。

df1 = pd.DataFrame({"localHour":['9', '12', '17', '16', '22', '19', 
'11', '15', '6', '18', '7', '21',
'13', '20', '23', '10', '14', '8',
'5', '3', '1', '0', '2', '4', 'null', '-1']})
df1.localHour = pd.to_numeric(df1.localHour, errors="coerce")

df1.localHour.tail()
21 0.0
22 2.0
23 4.0
24 NaN
25 -1.0
Name: localHour, dtype: float64

df1.localHour.tail().isnull()
21 False
22 False
23 False
24 True
25 False
Name: localHour, dtype: bool

关于Python - 不识别 Null 值,即使它存在于 Pandas Dataframe 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com