pandas读取EXCEL表格/数据库数据及其格式转换(待丰富)

import pandas as pd
import numpy as np
import pymysql
#导入库
def data_compare(table1, table):
    tb2_lack = []
    for i in range(1, len(table1)):
        if not table1[i] in table:
            tb2_lack.append(table1[i])
    return tb2_lack
#定义函数,比较table1和table2数据,返回table1有而table2没有的数据

conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='aaa')
#连接数据库
data2 = pd.read_excel('C:/Users/Administrator/Desktop/master.xlsx', sheetname=4, skiprows=4, usecols=[3])
#sheetname选中工作簿第4个表格(从0起),如果sheetname=[0,2],那代表读取第0页和第2页的sheet跳过,也可用sheetname='Sheet2'方式选取表格
#skiprows获取数据时跳过前几行,skiprows=[0]代表读取跳过的行数第0行,不写代表不跳过标题
#usecols表示选取哪几列
#names给各列命名,输入是一个和usecols等长的list
#index_col选定索引列
#header :指定作为列名的行,默认0,即取第一行,数据为列名行以下的数据;若数据不含列名,则设定 header = None
sql = 'select mc_description from mix_class '
data1 = pd.read_sql(sql, conn)
#data1、data2都为pandas的DataFrame格式
db_data=data1['mc_description'].values.tolist()
ex_data=data2['MC_Description'].values.tolist()
#通过上述方式将格式转化为list格式(针对DataFrame某一列)
print(db_data)
print(ex_data)
db_lack=data_compare(ex_data,db_data)
#获取ex_data有而db_data没有的数据
ex_lack=data_compare(db_data,ex_data)
#获取db_data有而ex_data没有的数据
db_lost=pd.DataFrame(db_lack,columns=['db_mc_lost'])
ex_lost=pd.DataFrame(ex_lack,columns=['ex_mc_lost'])
#pd.DataFrame将上述数据转化为DataFrame格式,coulumns对列命名,index建立索引(可理解为行名)
result=pd.concat([db_lost,ex_lost],axis=1)
#concat对DataFrame数据进行轴连接
print(result)

附相关链接DataFrame对象的基础操作

pd.read_excel操作读取excel文件参数整理与实例

PANDAS 数据合并与重塑(concat篇)

DataFrame结构及常用操作

第一次发博客,慢慢来。。。。

猜你喜欢

转载自blog.csdn.net/weixin_40537081/article/details/80337996