Python3数据科学包系列(二):数据分析实战

news2024/11/30 8:32:08


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.0

Process 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  71

Process 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  71

Process 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
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1054882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构:复杂度分析

目录 1 算法效率评估 1.1 实际测试 1.2 理论估算 2 迭代与递归 2.1 迭代 1. for 循环 2. while 循环 3. 嵌套循环 2.2 递归 1. 调用栈 2. 尾递归 3. 递归树 2.3 两者对比 3 时间复杂度 3.1 统计时间增长趋势 3.2 函数渐近上界…

Unity HDRP Custom Pass 实现场景雪地效果

先使用Shader Graph连一个使用模型法线添加雪地的shader,并赋给一个material。 1.1 先拿到模型世界坐标下的顶点法线,简单处理一下,赋给透明度即可。 给场景添加Custom Pass,剔除不需要的层级。 1.在Hierarchy界面中&#xff…

Ps:选择高光阴影中间调的方法

素描中的三大面:明面、灰面及暗面,基本上可对应数字图像中的高光、中间调和阴影。选出数字图像的这三大区域,可快速进行分级调色。 说明: 在练习过程中,为了更清楚地识别选择的范围,可以建立一个从黑到白的…

Promise击鼓传花的游戏

Promise击鼓传花的游戏 Promise系列导航前言一、学习Promise的原因二、揭开击鼓传花游戏的面纱补充小知识 Promise系列导航 1.Promise本质击鼓传花的游戏 2.Promise四式击鼓 3.Promise击鼓传花 4.Promise花落谁家知多少 前言 👨‍💻👨‍&…

竞赛 大数据房价预测分析与可视

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据房价预测分析与可视 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖,适合…

Spring5 自定义标签开发

spring5 自定义脚本开发步骤 1 定义bean, public class User {private String id;private String userName;private String email;private String password;public String getId() {return id;}public void setId(String id) {this.id id;}public String getUser…

计组+系统02:30min导图复习 存储系统

🐳前言 图源:文心一言 考研笔记整理,纯复习向,思维导图基本就是全部内容了,不会涉及较深的知识点~~🥝🥝 第1版:查资料、画思维导图~🧩🧩 编辑:…

C 语言关键字_at_的使用

查看一些老旧代码的时候看到有这么一段。 这个函数是轮询执行的,但是sourceinsight却没有找到vs_ucLedSegDutyRam的定义,全局搜索才找得到,结果发现原来它的定义很奇特。 里面用了_at_这个东西 _at_是让定义的vs_ucLedSegDutyRam首地址定义在…

常说的I2C协议是干啥的(电子硬件)

I2C(Inter-Integrated circuit)协议是电子传输信号中常用的一种协议。 它是一种两线式串行双向总线,用于连接微控制器和外部设备,也因为它所需的引脚数只需要两条(CLK和DATA),硬件实现简单&…

机器人入门(一)

机器人入门(一) 一、ROS是什么,能用来干什么?二、哪些机器人用到了ROS?三、ROS和操作系统是绑定的吗?四、ROS 1 和ROS 2的关系是什么?4.1架构中间件改变API改变数据格式改变 4.2特性4.3工具/生态…

JavaScript中如何确定this的值?如何指定this的值?

🎀JavaScript中的this 在绝大多数情况下,函数的调用方法决定了this的值(运行时绑定)。this不能在执行期间被赋值,并且在每次函数呗调用时this的值也可能会不同。 🍿如何确定this的值: 在非严格…

计算机竞赛 深度学习机器视觉车道线识别与检测 -自动驾驶

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…

209. 长度最小的子数组(滑动窗口)

一、题目 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 二、代码 class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int left 0, right 0;int sum nums[right];int MinLength INT_MAX;while (left <nums.siz…

【React】React组件生命周期以及触发顺序(部分与vue做比较)

最近在学习React&#xff0c;发现其中的生命周期跟Vue有一些共同点&#xff0c;但也有比较明显的区别&#xff0c;并且执行顺序也值得讨论一下&#xff0c;于是总结了一些资料在这里&#xff0c;作为学习记录。 v17.0.1后生命周期图片 初始化阶段 由ReactDOM.render()触发 —…

openGauss学习笔记-86 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署配置

文章目录 openGauss学习笔记-86 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT部署配置86.1 总体原则86.2 重做日志&#xff08;MOT&#xff09;86.3 检查点&#xff08;MOT&#xff09;86.4 恢复&#xff08;MOT&#xff09;86.5 统计&#xff08;MOT&#xff09;86…

【C++】unordered_set、unordered_map的介绍及使用

unordered_set、unordered_map的介绍及使用 一、unordered系列关联式容器二、unordered_map and unordered_multimap1、unordered_map的介绍2、unordered_map的使用&#xff08;1&#xff09;定义&#xff08;2&#xff09;接口使用 3、unordered_multimap 二、unordered_set a…

集合在多线程下安全问题

如果在多线程下&#xff0c;同时操作同一个数据源&#xff0c;就会出现数据安全问题&#xff1a; A线程取出值为10&#xff0c;准备加5. 同时B线程也取出来10&#xff0c;减了5 C取出的时候有可能时15&#xff0c;也有可能时5。产生了数据安全问题。 方法有很多例如&#xff1a…

消息队列-RabbitMQ(二)

接上文《消息队列-RabbitMQ&#xff08;一&#xff09;》 Configuration public class RabbitMqConfig {// 消息的消费方json数据的反序列化Beanpublic RabbitListenerContainerFactory<?> rabbitListenerContainerFactory(ConnectionFactory connectionFactory){Simple…

redis解压+windows安装+无法启动:1067

Redis下载安装图文教程&#xff08;Windows版_超详细&#xff09; 标题若遇到安装后无法启动&#xff1a;1067 排查方法如下&#xff1a; 1.查询是否有服务占用端口 查看6379的端口也没有被占用&#xff08;netstat -ano | findstr :6379&#xff09; 若有&#xff0c;kill掉…

盛最多水的容器 接雨水【基础算法精讲 02】

盛雨水最多的容器 链接 : 11 盛最多水的容器 思路 : 双指针 &#xff1a; 1.对于两条确定的边界&#xff0c;l和r,取中间的线m与r组成容器&#xff0c;如果m的高度>l的高度&#xff0c;那么整个容器的长度会减小&#xff0c;如果低于l的高度&#xff0c;那么不仅高度可…