pandas系列之txt文件和sql文件的基本操作 1导入

1.导入txt文件

本文所使用到的test.txt的内容如下:

image-20210713232357891.png

使用read_table()方法导入txt文件

1
2
3
4
python复制代码import pandas as pd

df = pd.read_table(r'C:\Users\admin\Desktop\test.txt')
print(df)

result:

1
2
3
复制代码  我是李华。 今天本来留下班里十几个人做大扫除结果他们都跑了,只留下了我一个人干完了所有活。 回家的路上真不巧又下了雨,
0 雨太大把我自行车前轮胎上的辐条都冲走了,我非常生气。 为了报复今天发生的一切,我骑着钢圈回到...
1 并把教室里的椅子都扔了出去。

该方法是将利用分隔符分开的文件导入DataFrame的通用函数。不仅可以导入.txt文件,也可以导入.csv文件。

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

result:

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

read_table()方法的其他参数用法和read_csv()方法基本一致,再此不再赘述。

2.导入sql文件

2.1 安装依赖库pymysql

python连接MySQL要用到pymysql,需要手动进行安装。
image-20210713233131704.png

1
2
3
4
5
6
7
8
9
10
11
ini复制代码import pandas as pd
import pymysql

con = pymysql.connect(host='127.0.0.1', # 数据库地址,本机为127.0.0.1或localhost
user='root', # 用户名
password='123456', # 密码
db='test', # 数据库名
charset='utf-8') # 数据库编码,一般为utf-8
sql = "select * from employees"
df = pd.read_sql(sql, con)
print(df)

此时报错

image-20210713234105887.png
修改charset=’utf8’后错误解决:

1
2
3
4
5
6
7
8
ini复制代码con = pymysql.connect(host='127.0.0.1',  # 数据库地址,本机为127.0.0.1或localhost
user='root', # 用户名
password='123456', # 密码
db='test', # 数据库名
charset='utf8') # 数据库编码,一般为utf-8
sql = "select * from employees"
df = pd.read_sql(sql, con)
print(df)

result:

1
2
3
4
yaml复制代码   eID NAME sex       birth jobs      firJob    hiredate
0 1 张三 男 1990-06-21 教师 2005-06-20 2009-08-26
1 2 鲁怀德 男 2004-06-29 工人 2018-08-01 2021-01-06
2 3 赵燕妮 女 1994-07-06 售货员 2004-09-21 2019-05-23

这里提供数据库查询结果作为比对:

image-20210713234431680.png
注:python使用pymysql与MySQL交互时,编码方式只能写成utf8,不要习惯性地写成utf-8

3.小结

导入数据主要用到pandas里的read_x()方法,x表示待导入文件的格式

除了之前介绍的导入.xlsx文件的read_excel(),导入.csv文件的read_csv(),导入txt的read_table(),导入sql文件的read_sql()之外,还有一些其他方法在此列出。这些使用到的不多,在此不做深入说明,。后面如有使用到再进行更新。

1
2
3
4
5
6
7
8
scss复制代码pd.read_xml()
pd.read_html()
pd.read_json()
pd.read_clipboard()
pd.read_feather()
pd.read_fwf()
pd.read_gbq()
pd.read_orc()

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%