我上传的{。{3}} .csv文件是我解释问题的示例文件。
此文件包含特定日期中国所有城市(代码中代表)的所有空气质量信息。
例如, 1001A 列代表一个城市,此列中的值代表与type
列对应的空气污染物浓度。
如果我想在20160205-00:00获得AQI
城市的1014A
值,
我只需要使用
df = pd.read_csv("./this file")
aqi = df["1014A"].iloc[0]
结果是 42 。但是在 LibraOffice 中查看相同的文件,结果显示如下:
似乎熊猫读了1013A
并犯了错误。
所以,我想弄清楚专栏1013A
中发生了什么:
pandas读取此列(内部有限值)作为NaN值列。它在这个文件中发生了很多次。在接下来的方面让我感到困扰:
有些数据的列被视为pandas.Dataframe中的NaN列
其他列也会间接受到Error-NaN列的影响。
如果此问题尚未解决,则列位置将充满错误。
任何建议都会受到赞赏!
答案 0 :(得分:2)
你的csv在这个位置有两个逗号:
...19,20,24,19,22,24,29,,42,39...
这被大熊猫读作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']