目录
为什么不推荐用csv库?
为什么推荐使用pandas读取csv文件?
开始pandas操作csv文件之旅:
0.csv文件预览
1.读取csv文件
2.查找指定列及指定单元格
2.1指定列:通过索引指定列名为hour的列
2.2指定单元格:1001A列23时的AQI值
3.解决遇到的"NAN"
本段说说使用csv库常见的问题:
#选择特定的单元格
reader = csv.reader(filenanme)
for row in reader:
print(row[0])
以上问题如何解决:
import pandas as pd
file="E:\data\test.csv"
csvPD=pd.read_csv(file)
通过索引找到列的方式:csvPD['hour']
在hour列中找到时间为23的行:
for i in range(len(csvPD)):
if str(csvPD['hour'][i])=="23":
print(csvPD['hour'][i])
keyWord="1001A"
for i in range(len(csvPD)):
if str(csvPD['hour'][i])=="23" and str(csvPD['type'][i])== "AQI":
result=csvPD[keyWord][i]
print(result)
import pandas as pd
#读取cvs文件
file="E:\data\test.csv"
csvPD=pd.read_csv(file)
#指定列名为hour的列
csvPD['hour']
#在hour列中找到时间为23的行
for i in range(len(csvPD)):
if str(csvPD['hour'][i])=="23":
print(csvPD['hour'][i])
#在hour列中找到时间为23时1001A站点的AQI值
keyWord="1001A"
for i in range(len(csvPD)):
if str(csvPD['hour'][i])=="23" and str(csvPD['type'][i])== "AQI":
result=csvPD[keyWord][i]
print(result)
csv文件中:1002A站点0时的AQI为空白值,返回的结果为NAN
NAN全称:Not A Number
常规解决思路:
操作结果如下图:
1.推荐使用np.isnan(),csvPD["1002A"][0] is np.nan显示为Flase
2.推荐使用nan*0之后仍是nan,而不是0
3.加了参数后,输出的所有数据类型变为str,nan变为空值,len(result)=0。
代码:
使用函数:
import numpy as np
result=csvPD["1002A"][0]
if np.isnan(result):
print("该数据为%f,不能参与计算",result)
else:
print(result)
使用运算方式:
result=csvPD["1002A"][0]
if result*0 == 0 :
print(result)
else:
print("该数据为%f,不能参与计算",result)
#若数据大于0
result=csvPD["1002A"][0]
if result > 0 :
print(result)
else:
print("该数据为%f,不能参与计算",result)