返回列表 发帖

Python3脚本管理MySQL(数据分析)

列出当前环境所有已经安装的第三方库的名称和其版本号:
C:\Users\jacky\Desktop>pip3 freeze
cycler==0.11.0
et-xmlfile==1.1.0
kiwisolver==1.3.1
matplotlib==3.3.0
numpy==1.19.5
openpyxl==3.1.2
pandas==1.1.5
Pillow==8.4.0
PyMySQL==0.10.1
pyparsing==3.1.2
python-dateutil==2.9.0.post0
pytz==2024.1
scipy==1.5.4
seaborn==0.11.2
six==1.16.0
xlrd==1.2.0
xlutils==2.0.0
xlwt==1.3.0

C:\Users\jacky\Desktop>





######

Win7客户端远程测试与数据库的连接的脚本:

#coding=utf-8
import pymysql

def db_connect():
       
        #数据库的连接信息,MySQL服务器的IP地址、用户名、用户密码、其中一个库的名称、端口号(3306)、字符集:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select version()" #查看MySQL的版本信息
        cursor.execute(Sql_1) #执行SQL语句

        Result_1 = cursor.fetchone()

        print(f"数据库连接成功,\n数据库的版本信息:{Result_1[0]}")

        db.commit() #把执行任务提交到数据库
        db.close()

def func_main():

        try:
                db_connect()
        except Exception as e:
                print(f"数据库连接失败,原因: {e}")

if __name__ == "__main__":

        func_main()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
数据库连接成功,
数据库的版本信息:5.5.48-log


C:\Users\jacky\Desktop>



######

Win7客户端远程进行数据检测:

#coding=utf-8
import pymysql
import pandas as pd

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from users_groups" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        print(df.info()) #查看每个字段的情况,如类型、是否为空等
       
if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片1.png
2024-6-11 08:20




######

Win7客户端远程进行数据检测:

#coding=utf-8
import pymysql
import pandas as pd

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from users_groups;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        print(df.isnull().sum()) #统计每个列的空值情况
       
        print("-" * 10)
        print("-" * 10)
       
        print(df.describe()) #查看数据描述信息
       
if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片2.png
2024-6-11 08:20




######

Win7客户端使用Pandas输出数据库里的指定数据:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from users_groups" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df.iloc[[0]] #输出第1行的数据
        print(df_1)
       
        print("-" * 10)
       
        df_2 = df.iloc[:,[0]] #输出第1列的数据
        print(df_2)
       
        print("-" * 10)
        print("-" * 10)
       
        df_3 = df[['usrgrpid']] #输出指定列名的数据
        print(df_3)
       
        print("-" * 5)
       
        df_4 = df['usrgrpid'] #输出指定列名的数据
        print(df_4)

if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片3.png
2024-6-11 08:21




######

Win7客户端使用Pandas输出数据库里的指定数据:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from users_groups" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df.iloc[[1,2]] #输出第2行、第3行的数据
        print(df_1)
       
        print("-" * 10)
       
        df_2 = df.iloc[:,[1,2]] #输出第2列、第3列的数据
        print(df_2)

if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片4.png
2024-6-11 08:22




######

Win7客户端使用Pandas输出数据库里的指定数据:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from users_groups;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df.loc[[0,2]] #输出索引的值为0、2的行数据
        print(df_1)
       
        print("-" * 10)
       
        df_2 = df[['usrgrpid','userid']] #输出指定列名的数据
        print(df_2)

if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片5.png
2024-6-11 08:22




######

Win7客户端使用Pandas输出数据库里的指定数据:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "mysql",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from zabbix.users_groups;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df.loc[[2,1,0]] #输出索引的值为2、1、0的行数据
        print(df_1)
       
        print("-" * 10)
       
        df_2 = df[['id','userid','usrgrpid']] #输出指定列名的数据
        print(df_2)

if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片6.png
2024-6-11 08:23




######

Win7客户端使用Pandas输出数据库里的指定数据:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "mysql",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from zabbix.users_groups;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df.iloc[0:2] #输出第1行至第2行的数据
        print(df_1)
       
        print("-" * 10)
       
        df_2 = df.iloc[:,0:2] #输出第1列至第2列的数据
        print(df_2)

if __name__ == "__main__":

        query_data()

脚本运行的结果:(把输出数据写入(覆盖)到指定的文件;假如目标文件存在则覆盖,不存在则自动创建)
C:\Users\jacky\Desktop>python xx.py > d:\share\1.txt

C:\Users\jacky\Desktop>


在CMD中读取指定文件的内容:
C:\Users\jacky\Desktop>type d:\share\1.txt
   id  usrgrpid  userid
0   4         7       1
1   2         8       2
2   3         9       2
----------
----------
   id  usrgrpid  userid
0   4         7       1
1   2         8       2
----------
   id  usrgrpid
0   4         7
1   2         8
2   3         9

C:\Users\jacky\Desktop>





######
######

Win7客户端远程创建表:

#coding=utf-8
import pymysql

def create_table():

        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
        cursor = db.cursor()

        #创建表table_1,字段id会自动增长
        Sql_1 = """CREATE TABLE table_1 (
        id int not null auto_increment,
        name varchar(20) NOT NULL,
        chinese float,
        math float,
        address varchar(50),
        primary key(id)
        )"""
       
        cursor.execute(Sql_1)
       
        db.commit() #把执行任务提交到数据库
        db.close()

def func_main():
        try:
                create_table()
        except Exception as e:
                print(f"创建表失败,原因: {e}")
        else:
                print("创建表成功。")
               
if __name__ == "__main__":
       
        func_main()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
创建表成功。

C:\Users\jacky\Desktop>



######

Win7客户端远程一次性插入多条记录:

#coding=utf-8
import pymysql

def insert_record():
        global db
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
        cursor = db.cursor()

        Sql_1 = "INSERT INTO table_1(name,chinese,math,address) VALUES('李大杰',60,72,'广州市天河区')"
        cursor.execute(Sql_1)
       
        Sql_2 = "INSERT INTO table_1 (name,chinese,math,address)" \
        " VALUES ('欧阳小明',50,61.5,'广州市南沙区');"
        cursor.execute(Sql_2)

        Key_1 = '范小冰'
        Key_2 = 68
        Key_3 = 40.5
        Key_4 = '佛山市南海区'

        Sql_2 = f"INSERT INTO table_1(name,chinese,math,address) VALUES('{Key_1}',{Key_2},'{Key_3}','{Key_4}')"
        cursor.execute(Sql_2)
       
        Key_1 = 'zhuohua'
        Key_2 = 71.5
        Key_3 = 90
        Key_4 = '佛山市顺德区'
       
        Sql_3 = f"INSERT INTO table_1(name,chinese,math,address) VALUES('{Key_1}',{Key_2},'{Key_3}','{Key_4}');"
        cursor.execute(Sql_3)

        db.commit() #把执行任务提交到数据库;必须是所有SQL语句都执行成功才会提交
        db.close()
       
def func_main():
        try:
                insert_record()
        except Exception as e:
                print(f"插入记录失败,原因: {e}")
                db.rollback() #如果发生错误就回滚
        else:
                print("插入记录成功。")

if __name__ == "__main__":

        func_main()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
插入记录成功。

C:\Users\jacky\Desktop>



######

Win7客户端使用Pandas输出数据库里的指定数据:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from table_1;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df.iloc[:3:] #输出第3行及其前面的数据
        print(df_1)
       
        print("-" * 10)
       
        df_2 = df[['name','address']] #输出指定列名的数据
        print(df_2)

if __name__ == "__main__":

        query_data()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   id      name  chinese  math       address
0   1    李大杰     60.0  72.0  广州市天河区
1   2  欧阳小明     50.0  61.5  广州市南沙区
2   3    范小冰     68.0  40.5  佛山市南海区
3   4   zhuohua     71.5  90.0  佛山市顺德区
----------
----------
   id      name  chinese  math       address
0   1    李大杰     60.0  72.0  广州市天河区
1   2  欧阳小明     50.0  61.5  广州市南沙区
2   3    范小冰     68.0  40.5  佛山市南海区
----------
       name       address
0    李大杰  广州市天河区
1  欧阳小明  广州市南沙区
2    范小冰  佛山市南海区
3   zhuohua  佛山市顺德区

C:\Users\jacky\Desktop>



######

Win7客户端使用Pandas输出数据库里的指定数据:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from table_1;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df[['name','chinese']] #输出指定列名的数据
        print(df_1)
       
        print("-" * 10)
       
        print(df_1['name']) #输出“name”那一列的数据

        print("-" * 10)
        print("-" * 10)
       
        print(df)
       
        print("-" * 10)
       
        print(df['chinese']) #输出“chinese”那一列的数据

if __name__ == "__main__":

        query_data()

脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
   id      name  chinese  math       address
0   1    李大杰     60.0  72.0  广州市天河区
1   2  欧阳小明     50.0  61.5  广州市南沙区
2   3    范小冰     68.0  40.5  佛山市南海区
3   4   zhuohua     71.5  90.0  佛山市顺德区
----------
----------
       name  chinese
0    李大杰     60.0
1  欧阳小明     50.0
2    范小冰     68.0
3   zhuohua     71.5
----------
0      李大杰
1    欧阳小明
2      范小冰
3     zhuohua
Name: name, dtype: object
----------
----------
   id      name  chinese  math       address
0   1    李大杰     60.0  72.0  广州市天河区
1   2  欧阳小明     50.0  61.5  广州市南沙区
2   3    范小冰     68.0  40.5  佛山市南海区
3   4   zhuohua     71.5  90.0  佛山市顺德区
----------
0    60.0
1    50.0
2    68.0
3    71.5
Name: chinese, dtype: float64

C:\Users\jacky\Desktop>



######

Win7客户端使用Pandas+绘图库Matplotlib:
#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #正常显示负号

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from table_1;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df[['name','chinese']] #输出指定列名的数据
        print(df_1)
       
        print("-" * 8)
       
        func_plt(df_1) #fun_plt()调用了query_data()的一个变量df_1,并且fun_plt()会自动执行
       
def func_plt(df_1): #绘制线形图

        plt.figure(figsize=(8,6),facecolor='white') #自定义窗体的宽和高、背景颜色
        plt.title("语文成绩的分析比较") #图形标题

        x = df_1['name']
        y = df_1['chinese']

        ## 绘制线形图:(使用plt.plot函数)
        plt.plot(x,y)
       
        plt.xlabel('- 姓名 -') #显示x轴名称
        plt.ylabel('分数') #显示y轴名称
       
        plt.grid(True,linestyle=':',color='purple',alpha=0.6) #显示网格线

        plt.show() #显示图形

if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片7.png
2024-6-11 08:26


脚本运行后的图形效果:
图片8.png
2024-6-11 08:27




######

Win7客户端使用Pandas+绘图库Matplotlib+Seaborn图表:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

import seaborn as sns
sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #正常显示负号

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "mysql",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from zabbix.table_1;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df[['name','chinese','address']] #输出指定列名的数据
        print(df_1)
       
        print("-" * 8)
       
        func_plt(df) #fun_plt()调用了query_data()的一个变量df,并且fun_plt()会自动执行
       
def func_plt(df): #绘制线形图

        plt.figure(figsize=(8,6),facecolor='white') #自定义窗体的宽和高、背景颜色
        plt.title("语文成绩的分析比较") #图形标题

        x = df['name']
        y = df['chinese']

        ## 绘制线形图:(使用plt.plot函数)
        plt.plot(x,y,color='red',linewidth=1.0,marker='o',mfc='w',linestyle=':')

        plt.xlabel('- 姓名 -') #显示x轴名称
        plt.ylabel('分数') #显示y轴名称

        plt.show() #显示图形

if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片9.png
2024-6-11 08:27


脚本运行后的图形效果:
图片10.png
2024-6-11 08:28




######

Win7客户端使用Pandas+绘图库Matplotlib+Seaborn图表:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

import seaborn as sns
sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #正常显示负号

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from table_1;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df[['name','chinese','math']] #输出指定列名的数据
        print(df_1)
       
        print("-" * 8)
       
        func_plt(df_1) #fun_plt()调用了query_data()的一个变量df_1,并且fun_plt()会自动执行
       
def func_plt(df_1): #绘制线形图

        plt.figure(figsize=(8,6),facecolor='white') #自定义窗体的宽和高、背景颜色
        plt.title("语文、数学成绩的分析比较") #图形标题

        x = df_1['name']
        y1 = df_1['chinese']
        y2 = df_1['math']

        ## 绘制线形图:(使用plt.plot函数)
        plt.plot(x,y1,label='语文成绩',color='red',linewidth=1.0,marker='o',mfc='w',linestyle=':')
        plt.plot(x,y2,label='数学成绩',color='blue',linewidth=1.0,marker='o',linestyle=':')

        plt.legend() #显示图例(label)
       
        plt.ylabel('分数') #显示y轴名称

        plt.show() #显示图形

if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片11.png
2024-6-11 08:28


脚本运行后的图形效果:
图片12.png
2024-6-11 08:29




######

Win7客户端使用Pandas+绘图库Matplotlib+Seaborn图表:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

import seaborn as sns
sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #正常显示负号

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "Select * from table_1;" #SQL语句
       
        df = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df)
       
        print("-" * 10)
        print("-" * 10)
       
        df_1 = df.copy() #复制df(复制后,df和df_1互不相干)
       
        df_1.drop(['id','address'],axis=1,inplace=True) ##一次性删除列标题为“id”、“address”的数据
        print(df_1)
       
        print("-" * 5)
       
        df_1 = df_1.set_index(['name']) #设置指定列的数据为索引
        print(df_1)
       
        print("-" * 10)
       
        df_1['总成绩'] = df_1.sum(axis=1) #按行求和
        print(df_1)

        print("-" * 10)
        print("-" * 10)
       
        print(df)
       
        print("-" * 8)
       
        func_plt(df,df_1) #fun_plt()调用了query_data()的两个变量df、df_1,并且fun_plt()会自动执行
       
def func_plt(df,df_1): #绘制线形图

        plt.figure(figsize=(8,6),facecolor='white') #自定义窗体的宽和高、背景颜色
        plt.title("语文、数学的总成绩的分析比较") #图形标题

        x = df['name']
        y = df_1['总成绩']

        ## 绘制线形图:(使用plt.plot函数)
        plt.plot(x,y,label='总成绩',color='red',linewidth=1.0,marker='o',linestyle=':')

        plt.legend() #显示图例(label)
       
        plt.ylabel('分数') #显示y轴名称

        plt.show() #显示图形

if __name__ == "__main__":

        query_data()

脚本运行的结果:
图片13.png
2024-6-11 08:29


脚本运行后的图形效果:
图片14.png
2024-6-11 08:30




######

Win7客户端使用Pandas把数据库里的指定数据导出到Excel文件:

#coding=utf-8
import pymysql

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

def query_data():
       
        #连接数据库:
        db = pymysql.connect("192.168.168.130", "zhuohua", "888", "zabbix",3306,charset="utf8")
       
        cursor = db.cursor()

        Sql_1 = "SELECT * from table_1;" #SQL语句
       
        df_1 = pd.read_sql(Sql_1,con=db)
       
        db.close()
       
        print(df_1)
       
        print("-" * 10)
        print("-" * 10)
       
        df_2 = df_1.iloc[1::] #输出第2行及其后面的数据
        print(df_2)
       
        print("-" * 10)
        print("-" * 10)
       
        df_3 = df_1.copy() #复制df_1(复制后,df_1和df_3互不相干)
        print(df_3)
       
        print("-" * 5)
       
        df_3.drop(['address','id'],axis=1,inplace=True) ##一次性删除列标题为“address”、“id”的数据
        print(df_3)
       
        print("-" * 5)
       
        df_3 = df_3.set_index(['name']) #设置指定列的数据为索引
        print(df_3)
       
        print("-" * 10)
       
        df_3['平均成绩'] = df_3.mean(axis=1) #按行求平均值
        print(df_3)

        print("-" * 8)
       
        ## 把结果分别导出到同一个Excel文件(.xlsx)的不同工作表:

        Work_1 = pd.ExcelWriter('D:/Python3/工作簿-1.xlsx')

        df_1.to_excel(Work_1,sheet_name='Sheet_1',index=False,header=True) #不保留索引(行标题),但保留列标题
       
        df_2.to_excel(Work_1,sheet_name='工作表_2',index=True,header=True) #保留索引(行标题)、列标题
       
        df_3.to_excel(Work_1,sheet_name='w_工作表_3',index=True,header=True) #保留索引(行标题)、列标题
       
        Work_1.save()

if __name__ == "__main__":

        query_data()

脚本运行的结果:(假如目标文件存在则覆盖,不存在则自动创建)
C:\Users\jacky\Desktop>python xx.py
   id      name  chinese  math       address
0   1    李大杰     60.0  72.0  广州市天河区
1   2  欧阳小明     50.0  61.5  广州市南沙区
2   3    范小冰     68.0  40.5  佛山市南海区
3   4   zhuohua     71.5  90.0  佛山市顺德区
----------
----------
   id      name  chinese  math       address
1   2  欧阳小明     50.0  61.5  广州市南沙区
2   3    范小冰     68.0  40.5  佛山市南海区
3   4   zhuohua     71.5  90.0  佛山市顺德区
----------
----------
   id      name  chinese  math       address
0   1    李大杰     60.0  72.0  广州市天河区
1   2  欧阳小明     50.0  61.5  广州市南沙区
2   3    范小冰     68.0  40.5  佛山市南海区
3   4   zhuohua     71.5  90.0  佛山市顺德区
-----
       name  chinese  math
0    李大杰     60.0  72.0
1  欧阳小明     50.0  61.5
2    范小冰     68.0  40.5
3   zhuohua     71.5  90.0
-----
          chinese  math
name
李大杰       60.0  72.0
欧阳小明     50.0  61.5
范小冰       68.0  40.5
zhuohua      71.5  90.0
----------
          chinese  math  平均成绩
name
李大杰       60.0  72.0     66.00
欧阳小明     50.0  61.5     55.75
范小冰       68.0  40.5     54.25
zhuohua      71.5  90.0     80.75
--------

C:\Users\jacky\Desktop>


在CMD中显示指定文件夹的内容:( dir D:\Python3 )
图片15.png
2024-6-11 08:30




######

Win7客户端使用Pandas输出Excel文件里的指定数据:

#coding=utf-8

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) #解决数据输出时列名不对齐的问题

df1 = pd.read_excel('D:/Python3/工作簿-1.xlsx',sheet_name='Sheet_1')
print(df1)

print("-" * 10)

df2 = pd.read_excel('D:/Python3/工作簿-1.xlsx',sheet_name="工作表_2")
print(df2)

print("-" * 10)

df3 = pd.read_excel("d:/Python3/工作簿-1.xlsx",sheet_name='w_工作表_3')
print(df3)

脚本运行的结果:
图片16.png
2024-6-11 08:31






相关文章:
Pandas的基础
Python3脚本管理Linux下的MySQL
Windows下Python3管理Excel表
Pandas的数据转换
Windows下Python3使用绘图库Matplotlib
Pandas+Excel+绘图库Matplotlib+Seaborn图表

Python3脚本管理Windows下的MySQL
MySQL的SQL语句
Pandas+Excel+绘图库Matplotlib
Pandas的数据合并
Pandas的进阶(二)
自定义函数

返回列表