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行和后五行,中间省略号.有些则是显示:

CSV文件显示

双击即可展开,如果想全部显示内容,则可以利用to_string函数转换,可以这么写:

import pandas as pd

df = pd.read_csv('weather.csv')

print(df.to_string())

效果如下:

CSV全部信息显示


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函数效果

也可以不指定数字,那么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的文件

以上大家可以上机试验,轻松学会,更多函数功能我们会在后续为大家介绍!

点赞(1)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)