pandas系列之csv文件的基本操作|Python 主题月

本文正在参加「Python主题月」,详情查看活动链接

本文所使用的CSV内容截图如下:

image.png

1.文件导入

1.1 不同分隔符导入

1.1.1 以逗号分隔符导入

使用read_csv()方法导入csv文件,该方法默认文件中的数据都是以逗号作为分隔符的

import pandas as pd

df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.csv')
print(df)
复制代码

result:

   区域  省份  城市
0  东北  辽宁  大连
1  西北  陕西  西安
2  华南  广东  深圳
3  华北  北京  北京
4  华中  湖北  武汉
复制代码

1.1.2 其他指定分隔符导入

若csv文件不是以逗号分隔,而是洽谈符号,此时读取需要使用sep参数来指定分隔符,否则会报错

eg:

import pandas as pd

df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.csv',sep=" ")
print(df)
复制代码

result:

   区域  省份  城市
0  东北  辽宁  大连
1  西北  陕西  西安
2  华南  广东  深圳
3  华北  北京  北京
4  华中  湖北  武汉
复制代码

1.2 导入部分数据

文件较大时,可以只导入前几行数据

df = pd.read_csv(r'C:\Users\admin\Desktop\中文\数据分析测试表.csv', nrows=1)
print(df)
复制代码

result:

区域 省份 城市
0 东北 辽宁 大连

2.文件编码

2.1 utf-8编码

image-20210712231358904.png
保存CSV格式文件时如果选择UTF-8(逗号分隔),导入时需要添加encoding参数,

df = pd.read_csv(r'C:\Users\admin\Desktop\数据分析测试表.csv', encoding='utf-8')
print(df)
复制代码

result:

   区域  省份  城市
0  东北  辽宁  大连
1  西北  陕西  西安
2  华南  广东  深圳
3  华北  北京  北京
4  华中  湖北  武汉
复制代码

你也可以不加encoding参数,因为python默认的编码格式就是utf-8编码。此时就和1导入CSV的结果一致

df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.csv')
print(df)
复制代码

result:

   区域  省份  城市
0  东北  辽宁  大连
1  西北  陕西  西安
2  华南  广东  深圳
3  华北  北京  北京
4  华中  湖北  武汉
复制代码

2.2 gbk编码

QQ拼音截图未命名.png

此时须设置encoding参数的值为gbk,否则会报错

df = pd.read_csv(r'C:\Users\admin\Desktop\数据分析测试表.csv', encoding='gbk')
print(df)
复制代码

result:

   区域  省份  城市
0  东北  辽宁  大连
1  西北  陕西  西安
2  华南  广东  深圳
3  华北  北京  北京
4  华中  湖北  武汉
复制代码

3.中文路径问题

CSV文件路径含有中文时,低版本的pandas读取文件时会报错。

有4个解决办法:

(1)将中文路径改为英文路径

(2)升级pandas版本,我电脑上目前装的1.3.0版本支持中文路径

(3)在文件地址名前加open

df = pd.read_csv(open(r'C:\Users\admin\Desktop\中文\数据分析测试表.csv'))
print(df)
复制代码

(4)添加engine参数

df = pd.read_csv(r'C:\Users\admin\Desktop\中文\数据分析测试表.csv', engine='python', encoding='utf-8-sig')
print(df)
复制代码

read_csv()方法默认采用c语言作为解析语言,此时只需要将c换成python就可以了。如果CSV编码方式是utf-8,需要将utf-8替换为utf-8-sig

注:方法3和方法4目前没有使用过,效果未知

4.行列索引以及数据读取问题

和xlsx文件操作方式一致,参见juejin.cn/post/698366…

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享