3.3 Python利用Pandas进行数据文件读写

在这里插入图片描述

本文章是3.3的内容,如果想要源代码和数据可以看以下链接:
https://download.csdn.net/download/Ahaha_biancheng/83338868

3.3 数据文件读写

3.3.1 读写CSV和TXT文件

3.3.1.1 读写CSV文件

在这里插入图片描述

例3-5 从students1.csv文件读出数据,保存为DataFrame对象

# 未定义行索引,自动生成
sdt = pd.read_csv('data/student1.csv') 
# 显示最后三条数据
sdt[-3:] 
序号性别年龄身高体重省份成绩
23male2218062FuJian57
34male2017772LiaoNing79
45male2017274ShanDong91

在这里插入图片描述

# 文件中每个同学已有序号,读取时作为行索引,所以此时,序号一列为行索引
sdt = pd.read_csv('data/student1.csv', index_col=0)
sdt[3:] # 输出第三行往后
性别年龄身高体重省份成绩
序号
4male2017772LiaoNing79
5male2017274ShanDong91
sdt = pd.read_csv('data/student1.csv', index_col=0, header=None)
sdt[:] # 输出
123456
0
序号性别年龄身高体重省份成绩
1male2017070LiaoNing71
2male2218071GuangXi77
3male2218062FuJian57
4male2017772LiaoNing79
5male2017274ShanDong91
# 由于不是utf编码所以报错
# 先调整文件
utf = pd.read_csv('data/utf_student1.csv') 
utf
序号性别年龄身高体重省份成绩
01male2017070LiaoNing71
12male2218071GuangXi77
23male2218062FuJian57
34male2017772LiaoNing79
45male2017274ShanDong91

3.3.1.2 读写TXT文件

在这里插入图片描述

# stxt = pd.read_csv('data/student2.txt')
# stxt = pd.read_csv('data/student2.txt', sep='\t')
# stxt = pd.read_csv('data/student2.txt', sep='\t', header=None)
name = ['序号','性别','年龄','身高','体重','省份','成绩']
# stxt = pd.read_csv('data/student2.txt', sep='\t', names=name)
stxt = pd.read_csv('data/student2.txt', sep='\t', names=name, index_col=0)
stxt
性别年龄身高体重省份成绩
序号
1male2017070LiaoNing71
2male2218071GuangXi77
3male2218062FuJian57
4male2017772LiaoNing79
5male2017274ShanDong91

通配符

在这里插入图片描述

使用详情可参考:
https://www.coolcou.com/pandas/pandas-read-write/pandas-read-txt.html

stxt = pd.read_csv('data/student2.txt', sep='\d', index_col=0, header=None)
stxt
<ipython-input-45-5c441f24e789>:1: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
  stxt = pd.read_csv('data/student2.txt', sep='\d', index_col=0, header=None)
12345678910
0
锘�\tmale\tNaN\tNaNNaN\tNaN\tLiaoNing\tNaNNaN
NaN\tmale\tNaN\tNaNNaN\tNaN\tGuangXi\tNaNNaN
NaN\tmale\tNaN\tNaNNaN\tNaN\tFuJian\tNaNNaN
NaN\tmale\tNaN\tNaNNaN\tNaN\tLiaoNing\tNaNNaN
NaN\tmale\tNaN\tNaNNaN\tNaN\tShanDong\tNaNNaN

3.3.1.3 保存csv文件

例3-7:新建DataFrame对象student,数据保存到out.csv文件

data = [[19,68,170],[20,65,165],[18,65,175]]
st = DataFrame(data, columns=['age', 'weight','height'])
print(st)
st.to_csv('out.csv',mode='w' )
   age  weight  height
0   19      68     170
1   20      65     165
2   18      65     175

3.3.2 读取Excel文件

从Excel文件中读取数据的函数类似CSV文件,需给出数据所在的Sheet表单名

pd.read_excel(file, sheetname, ...)

在这里插入图片描述

例3-8:从student3. xlsx文件名为“Group1”的页中读取数据

在这里插入图片描述

# 出错ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for 
# Excel support Use pip or conda to install xlrd. 版本问题


# stexl = pd.read_excel('data/student3.xlsx')
# skiprows=3 跳过前三行
# stexl = pd.read_excel('data/student3.xlsx', 'Group1', skiprows=3, index_col=0)
stexl = pd.read_excel('data/student3.xlsx', 'Group1', skiprows=[0,1,2,3], index_col=0)
stexl
male2017070LiaoNing71
1
2male2218071GuangXi77
3male2218062FuJian57
4male2017772LiaoNing79
5male2017274ShanDong91

版权声明:本文为Ahaha_biancheng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。