当我使用pandas阅读.csv中的特定列时,会发生奇怪的跳跃
1.背景
我上传的.csv文件是一个示例文件,供我解释我的问题。
该文件包含中国所有城市的空气质量信息(代码代码)。
例如,列1001A表示一个城市,并且该列中的值表示对应于type
列的空气污染物浓度。
我的问题
如果我想在20160205-00:00获得1014A
城市的AQI
值,
我只需要使用
df = pd.read_csv("./this file") aqi = df["1014A"].iloc[0]
结果是42 。 但是在LibraOffice中查看同样的文件,结果如下所示:
pandas看起来像读了1013A
,并犯了错误。
所以我想弄清楚1013A
发生了什么:
大pandas阅读这个列(里面有有限的值)作为NaN值列。 在这个文件中发生了很多次。 它在以下方面困扰我:
-
一些有数据的列在pandas.Dataframe中被当作NaN列
-
其他列也会间接受到Error-NaN列的影响。
如果这个问题没有得到解决,那么列位置就会充满错误。
任何意见将不胜感激!
你的CSV在这个位置上有两个逗号:
...19,20,24,19,22,24,29,,42,39...
这被pandas读为NaN。
它看起来像在您的LibreOffice版本中被跳过,并使用后续值(不正确)。
In [11]: s = open("china_sites_20160205.csv").readlines() In [12]: s[0].split(",")[13:18] Out[12]: ['1011A', '1012A', '1013A', '1014A', '1015A'] In [13]: s[1].split(",")[13:18] Out[13]: ['24', '29', '', '42', '39']