当我使用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']