我已将数据库表下载到 csv 文件中。
现在其中一列既有空单元格,也有一些写为 NULL。以下是通过在 Pandas 中读取该 CSV 文件创建的示例数据框:
df:
Col1 Col2 Amount1 Amount2
A NULL 100.22 100.22
A NULL 100.22 100.22
A Virgo 100.22 100.22
A Arkenea 100.22 100.22
A 100.22 100.22
A 100.22 100.22
现在,当我执行以下代码时,我得到以下输出:
df[(df['Col1']=="B")].unique()
输出:
('nan', 'Virgo', 'Arkenea')
在这里我无法区分 NULL 和空单元格,因为两者都显示为“nan”。此外,如果我执行 fillna,NULL 和空列都会使用新值进行更新。有什么方法可以读取文件,以便分别显示 NULL 和空单元格。
对此的任何线索表示赞赏。
根据我的理解,这是我能够做的事情,
>>> import pandas as pd
>>> import numpy as np
>>> d = {'col1': [1, 2, 2, 3], 'col2': [3, 4, 5, 6], 'col3': ['NULL','NULL', np.nan, 'virgo']}
>>> df = pd.DataFrame(data=d)
>>> df.isnull()
col1 col2 col3
0 False False False
1 False False False
2 False False True
3 False False False
>>> df['col3'].unique()
array(['NULL', nan, 'virgo'], dtype=object)
当我保存上述文件并尝试再次读取它时,它将所有 NULL 和空白条目作为 NaN 值。要解决这个问题,
df1 = pd.read_csv('/tmp/test.csv', keep_default_na=False, na_values=[''])
这对我有用。
>>> df1.isnull()
Unnamed: 0 col1 col2 col3
0 False False False False
1 False False False False
2 False False False True
3 False False False False
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句