文件夹目录有两张分别为-年间代码为的股票的利润表和现金流量表两个Excel文件,采用Python实现自动插入到MySQL数据库
下面是操作步骤:
导入依赖包
连接数据库
获取文件夹下后缀为“xlsx”的Excel文件的全路径,并保存为列表元素
#导入依赖包importosimportpandasaspdimportpymysql#连接数据库defmysql():db=pymysql.connect(host=localhost,user=root,passwd=******,db=sys,charset=utf8)cur=db.cursor()returndb,cur#获取文件夹下后缀为“xlsx”的Excel文件的全路径,并保存到列表defget_path_list(path):file_list=os.listdir(path)path_list=[]foriinget_file_list(path):ifi[-4:]==xlsx:path_list.append(path+\\+i)else:path_listreturnpath_list
执行get_path_list(path)函数之后可获得:
读取每个Excel文件内容,并把每个表格都存成DataFrame结构,然后储存为列表元素
#读取每个Excel文件内容,并把每个表格都存成DataFrame结构,然后储存为列表元素deffile_to_df(path_list):df_raw=[]foriinpath_list:df_raw.append(pd.read_excel(i,index_col=0,sheet_name=sheet1))#sheeet_name设置需要读取的页#合并DataFramedf=pd.concat(df_raw)returndf
合并之后的DataFrame如下(源数据分别为90行、46行):
将DataFrame插入事先创建好的数据库,写入的数据格式必须是元组,需要线转换成元组,若DataFrame则报错
defdf_to_mysql(df):df_tuple=[tuple(row)forrowindf.values]db,cur=mysql()#执行sql语句cur.execute(set_sql)db.