栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python操作数据库插入取出以及绘图

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python操作数据库插入取出以及绘图

一、text文件插入到数据库

代码新建库、表、再插入

代码如下:

import pandas as pd
import sqlalchemy as sq
import pymysql
import warnings
warnings.filterwarnings("ignore")  # 利用过滤器来实现忽略告警

DataBaseName='co2' #要创建的数据库
tb_name = 'wlg'  ###要创建的数据表
path = r'E:testWLG.txt' # 指定一个站点数据文件
try:
    conn = pymysql.connect(host='localhost',
                           user='root',
                           password='root',
                          ) #db='airstropatm' 这个可以放在前面的括号里面,同时把后面的第二、三行删除即可,就是直接选择数据库,不用创建数据库
    cursor = conn.cursor()
    cursor.execute('CREATE DATABASE  IF NOT EXISTS ' + DataBaseName + ' CHARACTER SET=utf8mb4')
    conn.select_db(DataBaseName)
    print('数据库连接成功!')
except Exception as e:
    print('数据库连接失败!', e)


try:
    sql_createTb = """CREATE TABLE %s""" %tb_name + """(      
                        id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,                  
                        dateYMD date DEFAULT NULL,                                         
                        value float DEFAULT NULL,                        
                        PRIMARY KEY(id));
                        """
    cursor.execute(sql_createTb)
    conn.commit()
    print('创建成功')
except Exception as e:
    conn.rollback()
    print('创建失败', e)
finally:
    cursor.close()
    conn.close()

con = sq.create_engine('mysql+pymysql://root:root@localhost/co2') # 连接mysql数据库

df = pd.read_csv(path, sep='s+', header=None, skiprows=0, engine='python')# 连接mysql数据库,150是跳过的行号

df['dateYMD'] = df[1].map(str) +'-'+ 
            df[2].map(lambda x: str(x).zfill(2))+'-'+ 
            df[2].map(lambda x: str(x).zfill(2))
              # 上面是数据的第一列至第三列连接成日期。
#print(df['dateYMD'])
#df['dateYMD'] = df[0]  # 数据的第0列 。
df['value'] = df[3]  # 数据的第6列 。
#print(df[3])
dobson_df = df[['dateYMD', 'value' ]]
#print(dobson_df)
dobson_df.drop(dobson_df.loc[dobson_df['value'] < 0].index, inplace=True)  # 删除无效值
dobson_df.to_sql(tb_name, con, if_exists='append', index=False)

最终插入的表格样子

二、用python链接数据库,并且取指定库的指定表的全部数据,然后自行绘图

代码如下:

import pymysql
import matplotlib.pyplot as plt

def selectSQL():
    # 这里设置的是本地数据库的账户的信息,根据情况来修改参数
     db = pymysql.connect(host="localhost" ,
                         user="root" ,
                         password="1234",
                         db="co2" ,
                         charset='utf8',
                         )
    cursor = db.cursor()
    try:
        # from 后边是要操作的数据表
        sql = "SELECt * FROM wlg"
        cursor.execute(sql)
        data = cursor.fetchall()
        # data里边就是信息,是一个二维列表,print 一下就知道了
        return data
    except :
        print("selsct Error")

    db.close()


def draw(data):
    name_list = []
    data_list = []
    i = 0
    #data的信息是表里边全部的信息,根据需要取即可
    for item in data:
        # item 就是表内一行数据,用下标读取第几列即可,从 0 开始
        name_list.append(item[1])
        data_list.append(item[2])
     
    print(name_list)
    print(data_list)
    
    plt.plot(name_list, data_list,marker='.',color='r')
    plt.title('CO2')
    plt.xlabel('year')
    plt.ylabel('CO2(mg/L)')
    plt.tick_params(direction='in')  # 刻度向里
    plt.show()


def main():
    # 先查出数据,然后再绘图
    draw(selectSQL())


if __name__ == "__main__":
    main()

最终绘图样子:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/960820.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号