1.什么是CSV文件?
CSV文件其实是应用非常广泛的一种数据文件,通常用于存储大型数据集的简单方法,是用逗号分隔的文件。
为了让大家看看CSV文件什么样子,也方便后面的例子,我们这里准备一个数据文件,是48个城市的天气信息,如下:
city,province,area_code,temp_max,temp_min,humidity,wind_power beijing,beijing,10,31,22,58,3 shanghai,shanghai,21,32,25,72,3 tianjin,tianjin,22,30,22,60,3 chongqing,chongqing,23,34,26,70,2 guangzhou,guangdong,20,33,26,78,2 shenzhen,guangdong,755,32,26,80,3 zhuhai,guangdong,756,31,26,79,3 foshan,guangdong,,33,26,77,2 dongguan,guangdong,769,32,26,78,2 zhongshan,guangdong,760,32,26,79,2 huizhou,guangdong,752,32,25,77,3 shantou,guangdong,754,31,25,80,3 zhanjiang,guangdong,759,32,26,82,3 nanjing,jiangsu, ,32,24,68,3 suzhou,jiangsu,512,31,24,70,3 wuxi,jiangsu,510,31,24,69,3 changzhou,jiangsu,519,31,24,68,3 nantong,jiangsu,513,30,23,72,3 xuzhou,jiangsu,516,31,22,65,3 yangzhou,jiangsu,514,31,23,69,3 hangzhou,zhejiang,571,33,25,72,2 ningbo,zhejiang,574,31,25,75,3 wenzhou,zhejiang,577,31,25,78,3 jiaxing,zhejiang,573,31,24,74,3 shaoxing,zhejiang,575,32,25,73,2 jinhua,zhejiang,579,33,25,72,2 taizhou_zj,zhejiang,576,31,25,77,3 hefei,anhui,551,32,24,70,3 wuhu,anhui,553,32,24,72,3 bengbu,anhui,552,31,23,69,3 anqing,anhui,556,32,24,73,3 fuzhou,fujian,591,33,26,76,3 xiamen,fujian,592,32,26,79,3 quanzhou,fujian,595,32,26,78,3 zhangzhou,fujian,596,33,26,77,3 nanchang,jiangxi,791,33,25,72,2 ganzhou,jiangxi,797,33,25,74,2 jiujiang,jiangxi,792,32,25,73,3 jinan,shandong,531,31,22,62,3 qingdao,shandong,532,28,22,75,3 yantai,shandong,535,28,21,72,4 weifang,shandong,536,30,21,65,3 linyi,shandong,539,30,21,67,3 zhengzhou,henan,371,32,23,64,3 luoyang,henan,379,31,22,63,3 kaifeng,henan,378,32,23,65,3 xinxiang,henan,373,31,22,64,3 wuhan,hubei,27,33,25,72,2 yichang,hubei,717,32,24,73,2
大家首先可以观察其中的数据格式,是逗号分开逐个数据。大家可以复制这些数据到一个txt文件里(没错,CSV本质就是文本格式)。然后改名为weather.csv即可!后续的例子我们都需要读取这个文件
2.如何读取CSV文件
在上一步把文件放到我们python源代码的同级目录时,我们就可以写如下代码:
import pandas as pd
df = pd.read_csv('weather.csv') #注意文件名要一致,否则会报错
print(df)代码比较简单,即引用pandas库后,调用了read_csv文件,将目标文件传入即可,
大家可以先敲进去运行测试,部分编译器会仅输出前5行和后五行,中间省略号.有些则是显示:

双击即可展开,如果想全部显示内容,则可以利用to_string函数转换,可以这么写:
import pandas as pd
df = pd.read_csv('weather.csv')
print(df.to_string())效果如下:

3.显示指定行数
前面我们看到数据非常多(其实笔者准备的48行已经很少了,实际需求中可能成千上万行),想只看比如前10行、20行如何操作呢,可以使用head函数;如果想显示后几行,可以使用 tail函数,我们可以这么写:
import pandas as pd
df = pd.read_csv('weather.csv')
print(df.head(10)) #显示前10行
print(df.tail(8)) #显示后8行运行效果如下:

也可以不指定数字,那么head函数和tail函数默认都是显示5行,大家可以亲自上机体验!
4.如何导出CSV文件
如果想把数据导出为csv文件,也很简单,使用to_csv函数即可,可以直接看代码
import pandas as pd
data = {'Name': ['Dalian', 'Qingdao'], 'Code': [411, 532], 'Province': ['Liaoning', 'Shandong']}
info = pd.DataFrame(data)
print(info)
#转换为csv数据
info.to_csv('dotcpp.csv',index=False)大家注意代码,将DataFrame里的数据直接调用to_csv函数即可,第一个参数传入导出文件的名字,第二个参数可以空,也可以像例子中这样省区默认索引。执行后,除了屏幕会输出信息之外,会在同级目录下多一个dotcpp.csv的文件
以上大家可以上机试验,轻松学会,更多函数功能我们会在后续为大家介绍!
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程