Python3中类的高级语法及实战
Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案
Python3数据科学包系列(一):数据分析实战
Python3数据科学包系列(二):数据分析实战
一:通过read_table函数读取数据创建(DataFrame)数据框
# -*- coding:utf-8 -*- from pandas import read_table ''' 从文件(rz.txt)读取数据创建pandas的DataFrame数据框 ''' print(""" 注意: (1)txt文本文件要保存成UTF-8格式才不会报错 (2)查看数据框dataFrame前n项数据使用dataFrame.head(n);后m项数据用dataFrame.tail(m);默认均是5 """) dataFrame = read_table(r'./file/rz.txt', sep="\t") print("查看前5项数据: ", dataFrame.head(5)) print() print("查看后5项数据: ", dataFrame.tail(5)) print() print("查看所有数据") print(dataFrame)
运行效果:
D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByTXTFileCreatePandasOfDataFrame.py
注意:
(1)txt文本文件要保存成UTF-8格式才不会报错
(2)查看数据框dataFrame前n项数据使用dataFrame.head(n);后m项数据用dataFrame.tail(m);默认均是5查看前5项数据: 学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
0 2308024241 23080242 成龙 男 76 78 77 40 23 60.0
1 2308024244 23080242 周怡 女 66 91 75 47 47 44.0
2 2308024251 23080242 张波 男 85 81 75 45 45 60.0
3 2308024249 23080242 朱浩 男 65 50 80 72 62 71.0
4 2308024219 23080242 封印 女 73 88 92 61 47 46.0查看后5项数据: 学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
16 2308024433 23080244 李大强 男 79 76 77 78 70 NaN
17 2308024428 23080244 李侧通 男 64 96 91 69 60 NaN
18 2308024402 23080244 王慧 女 73 74 93 70 71 75.0
19 2308024422 23080244 李晓亮 男 85 60 85 72 72 NaN
20 2308024201 23080242 迟培 男 60 50 89 71 76 71.0查看所有数据
学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
0 2308024241 23080242 成龙 男 76 78 77 40 23 60.0
1 2308024244 23080242 周怡 女 66 91 75 47 47 44.0
2 2308024251 23080242 张波 男 85 81 75 45 45 60.0
3 2308024249 23080242 朱浩 男 65 50 80 72 62 71.0
4 2308024219 23080242 封印 女 73 88 92 61 47 46.0
5 2308024201 23080242 迟培 男 60 50 89 71 76 71.0
6 2308024347 23080243 李华 女 67 61 84 61 65 78.0
7 2308024307 23080243 陈田 男 76 79 86 69 40 69.0
8 2308024326 23080243 余皓 男 66 67 85 65 61 71.0
9 2308024320 23080243 李嘉 女 62 作弊 90 60 67 77.0
10 2308024342 23080243 李上初 男 76 90 84 60 66 NaN
11 2308024310 23080243 郭窦 女 79 67 84 64 64 79.0
12 2308024435 23080244 姜毅涛 男 77 71 缺考 61 73 NaN
13 2308024432 23080244 赵宇 男 74 74 88 68 70 71.0
14 2308024446 23080244 周路 女 76 80 77 61 74 80.0
15 2308024421 23080244 林建祥 男 72 72 81 63 90 NaN
16 2308024433 23080244 李大强 男 79 76 77 78 70 NaN
17 2308024428 23080244 李侧通 男 64 96 91 69 60 NaN
18 2308024402 23080244 王慧 女 73 74 93 70 71 75.0
19 2308024422 23080244 李晓亮 男 85 60 85 72 72 NaN
20 2308024201 23080242 迟培 男 60 50 89 71 76 71.0Process finished with exit code 0
二:通过read_csv|read_table读取csv格式数据创建(DataFrame)数据块
# -*- coding:utf-8 -*- from pandas import read_csv, read_table ''' 从文件(rz.cvs)读取数据创建pandas的DataFrame数据框 ''' dataFrame = read_csv(r'./file/rz.csv', sep=",") print("读取cvs文件的所有数据: ") print(dataFrame) print() print("读取前5行数据:") print(dataFrame.head(5)) print() print("读取后5行数据:") print(dataFrame.tail(5)) print() print("使用read_table读取csv数据也是可以的") dataFrame = read_table(r'./file/rz.csv', sep=",") print("读取cvs文件的所有数据: ") print(dataFrame)
运行效果:
D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByCVSFileCreatePandasOfDataFrame.py
读取cvs文件的所有数据:
学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
0 2308024241 23080242 成龙 男 76 78 77 40 23 60
1 2308024244 23080242 周怡 女 66 91 75 47 47 44
2 2308024251 23080242 张波 男 85 81 75 45 45 60
3 2308024249 23080242 朱浩 男 65 50 80 72 62 71
4 2308024219 23080242 封印 女 73 88 92 61 47 46
5 2308024201 23080242 迟培 男 60 50 89 71 76 71
6 2308024347 23080243 李华 女 67 61 84 61 65 78
7 2308024307 23080243 陈田 男 76 79 86 69 40 69
8 2308024326 23080243 余皓 男 66 67 85 65 61 71
9 2308024320 23080243 李嘉 女 62 作弊 90 60 67 77
10 2308024342 23080243 李上初 男 76 90 84 60 66 60
11 2308024310 23080243 郭窦 女 79 67 84 64 64 79
12 2308024435 23080244 姜毅涛 男 77 71 缺考 61 73 76
13 2308024432 23080244 赵宇 男 74 74 88 68 70 71
14 2308024446 23080244 周路 女 76 80 77 61 74 80
15 2308024421 23080244 林建祥 男 72 72 81 63 90 75
16 2308024433 23080244 李大强 男 79 76 77 78 70 70
17 2308024428 23080244 李侧通 男 64 96 91 69 60 77
18 2308024402 23080244 王慧 女 73 74 93 70 71 75
19 2308024422 23080244 李晓亮 男 85 60 85 72 72 83
20 2308024201 23080242 迟培 男 60 50 89 71 76 71读取前5行数据:
学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
0 2308024241 23080242 成龙 男 76 78 77 40 23 60
1 2308024244 23080242 周怡 女 66 91 75 47 47 44
2 2308024251 23080242 张波 男 85 81 75 45 45 60
3 2308024249 23080242 朱浩 男 65 50 80 72 62 71
4 2308024219 23080242 封印 女 73 88 92 61 47 46读取后5行数据:
学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
16 2308024433 23080244 李大强 男 79 76 77 78 70 70
17 2308024428 23080244 李侧通 男 64 96 91 69 60 77
18 2308024402 23080244 王慧 女 73 74 93 70 71 75
19 2308024422 23080244 李晓亮 男 85 60 85 72 72 83
20 2308024201 23080242 迟培 男 60 50 89 71 76 71使用read_table读取csv数据也是可以的
读取cvs文件的所有数据:
学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
0 2308024241 23080242 成龙 男 76 78 77 40 23 60
1 2308024244 23080242 周怡 女 66 91 75 47 47 44
2 2308024251 23080242 张波 男 85 81 75 45 45 60
3 2308024249 23080242 朱浩 男 65 50 80 72 62 71
4 2308024219 23080242 封印 女 73 88 92 61 47 46
5 2308024201 23080242 迟培 男 60 50 89 71 76 71
6 2308024347 23080243 李华 女 67 61 84 61 65 78
7 2308024307 23080243 陈田 男 76 79 86 69 40 69
8 2308024326 23080243 余皓 男 66 67 85 65 61 71
9 2308024320 23080243 李嘉 女 62 作弊 90 60 67 77
10 2308024342 23080243 李上初 男 76 90 84 60 66 60
11 2308024310 23080243 郭窦 女 79 67 84 64 64 79
12 2308024435 23080244 姜毅涛 男 77 71 缺考 61 73 76
13 2308024432 23080244 赵宇 男 74 74 88 68 70 71
14 2308024446 23080244 周路 女 76 80 77 61 74 80
15 2308024421 23080244 林建祥 男 72 72 81 63 90 75
16 2308024433 23080244 李大强 男 79 76 77 78 70 70
17 2308024428 23080244 李侧通 男 64 96 91 69 60 77
18 2308024402 23080244 王慧 女 73 74 93 70 71 75
19 2308024422 23080244 李晓亮 男 85 60 85 72 72 83
20 2308024201 23080242 迟培 男 60 50 89 71 76 71Process finished with exit code 0
三: 通过read_excel函数读取excel数据创建(DataFrame)数据框
# -*- coding:utf-8 -*- from pandas import read_excel ''' 从文件(i_nuc.xls)读取数据创建pandas的DataFrame数据框 ''' dataFrame = read_excel(r'./file/i_nuc.xls', sheet_name="Sheet3") print(dataFrame) print() print("读取前5行数据:") print(dataFrame.head(5)) print() print("读取后5行数据:") print(dataFrame.tail(5))
运行效果:
D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByExcelFileCreateDataFrame.py
学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
0 2308024241 23080242 成龙 男 76 78 77 40 23 60
1 2308024244 23080242 周怡 女 66 91 75 47 47 44
2 2308024251 23080242 张波 男 85 81 75 45 45 60
3 2308024249 23080242 朱浩 男 65 50 80 72 62 71
4 2308024219 23080242 封印 女 73 88 92 61 47 46
5 2308024201 23080242 迟培 男 60 50 89 71 76 71
6 2308024347 23080243 李华 女 67 61 84 61 65 78
7 2308024307 23080243 陈田 男 76 79 86 69 40 69
8 2308024326 23080243 余皓 男 66 67 85 65 61 71
9 2308024320 23080243 李嘉 女 62 作弊 90 60 67 77
10 2308024342 23080243 李上初 男 76 90 84 60 66 60
11 2308024310 23080243 郭窦 女 79 67 84 64 64 79
12 2308024435 23080244 姜毅涛 男 77 71 缺考 61 73 76
13 2308024432 23080244 赵宇 男 74 74 88 68 70 71
14 2308024446 23080244 周路 女 76 80 77 61 74 80
15 2308024421 23080244 林建祥 男 72 72 81 63 90 75
16 2308024433 23080244 李大强 男 79 76 77 78 70 70
17 2308024428 23080244 李侧通 男 64 96 91 69 60 77
18 2308024402 23080244 王慧 女 73 74 93 70 71 75
19 2308024422 23080244 李晓亮 男 85 60 85 72 72 83
20 2308024201 23080242 迟培 男 60 50 89 71 76 71读取前5行数据:
学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
0 2308024241 23080242 成龙 男 76 78 77 40 23 60
1 2308024244 23080242 周怡 女 66 91 75 47 47 44
2 2308024251 23080242 张波 男 85 81 75 45 45 60
3 2308024249 23080242 朱浩 男 65 50 80 72 62 71
4 2308024219 23080242 封印 女 73 88 92 61 47 46读取后5行数据:
学号 班级 姓名 性别 英语 体育 军训 数分 高代 解几
16 2308024433 23080244 李大强 男 79 76 77 78 70 70
17 2308024428 23080244 李侧通 男 64 96 91 69 60 77
18 2308024402 23080244 王慧 女 73 74 93 70 71 75
19 2308024422 23080244 李晓亮 男 85 60 85 72 72 83
20 2308024201 23080242 迟培 男 60 50 89 71 76 71Process finished with exit code 0
四: 通过read_sql函数多读取数据mysql的数据创建(DataFrame)数据框
# -*- coding:utf-8 -*- import pandas as pd import pymysql """ 从文件数据框表读取数据创建pandas的DataFrame数据框 """ conn = None dataFrame = None try: # 打开数据库连接 db = pymysql.connect(host="localhost", user="您的用户名", password="您的密码", database="数据库名称", charset='utf8' ) conn = pymysql.connect(user="root", password="123456", host="localhost", database="tope-pay-user", port=3306, charset='utf8', autocommit=False) sql = "select * from sys_books" print("利用pandas模块导入mysql表的数据") dataFrame = pd.read_sql(sql, conn) except Exception as err: print("pandas模块导入表sys_books数据异常: ", err) finally: conn.close() print("导入的dataFrame数据为:") print(dataFrame)
利用pandas模块导入mysql表的数据
D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByMySQLCreateDataFrame.py:16: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.
dataFrame = pd.read_sql(sql, conn)
导入的dataFrame数据为:
id NAME ... update_time deleted
0 1 零基础学Python3 ... 2023-09-26 16:58:34 0
1 2 零基础学Java ... 2023-09-26 16:58:34 0
2 3 零基础学C++ ... 2023-09-26 16:58:34 0
3 4 零基础学Python数据可视化 ... 2023-09-26 16:58:34 0
4 5 零基础学C语言 ... 2023-09-26 16:58:34 0
5 6 零基础学android ... 2023-09-26 16:58:34 0
6 7 零基础学Python3 ... 2023-09-26 17:09:41 0
7 8 零基础学Java ... 2023-09-26 17:09:41 0
8 9 零基础学C++ ... 2023-09-26 17:09:41 0
9 10 零基础学Python数据可视化 ... 2023-09-26 17:09:41 0
10 11 零基础学C语言 ... 2023-09-26 17:09:41 0
11 12 零基础学android ... 2023-09-26 17:09:41 0[12 rows x 8 columns]
五:通过create_engine函数读取mysql数据创建(DataFrame)数据框
# -*- coding:utf-8 -*- from sqlalchemy import create_engine import pandas as pd MYSQL_HOST = 'localhost' MYSQL_PORT = '3306' MYSQL_USER = 'root' MYSQL_PASSWORD = '123456' MYSQL_DB = 'tope-pay-user' """ 从文件数据框表读取数据创建pandas的DataFrame数据框 """ engine = create_engine('mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8' % (MYSQL_USER, MYSQL_PASSWORD, MYSQL_HOST, MYSQL_PORT, MYSQL_DB)) sql = 'select * from sys_books' df = pd.read_sql(sql, engine) pd.set_option('display.unicode.ambiguous_as_wide', True) pd.set_option('display.unicode.east_asian_width', True) print(df)
运行效果:
D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\dataanalysis\DataAnalysisByMySQLCreate_engineDataFrame.py
id NAME ... update_time deleted
0 1 零基础学Python3 ... 2023-09-26 16:58:34 0
1 2 零基础学Java ... 2023-09-26 16:58:34 0
2 3 零基础学C++ ... 2023-09-26 16:58:34 0
3 4 零基础学Python数据可视化 ... 2023-09-26 16:58:34 0
4 5 零基础学C语言 ... 2023-09-26 16:58:34 0
5 6 零基础学android ... 2023-09-26 16:58:34 0
6 7 零基础学Python3 ... 2023-09-26 17:09:41 0
7 8 零基础学Java ... 2023-09-26 17:09:41 0
8 9 零基础学C++ ... 2023-09-26 17:09:41 0
9 10 零基础学Python数据可视化 ... 2023-09-26 17:09:41 0
10 11 零基础学C语言 ... 2023-09-26 17:09:41 0
11 12 零基础学android ... 2023-09-26 17:09:41 0[12 rows x 8 columns]
Process finished with exit code 0