day2
1,def mysql(sql):
cursor.execute(sql)
jieguo=cursor.fetchall
cols=cursor.description
col=[]
for v in cols:
col.append(v[0])
dfsql=pd.DataFrame(jieguo,columns=col)
if dfsql.empty:
return 'empty set'
else:
return dfsql
#创建mysql查询函数,链接mysql查询,输出结果为带列名的DF数据框
2, with pd.ExcelWriter('路径/.xlsx',encoding='utf8') as writer:
df1.to_excel(writer,sheet_name='sheet名称')
df2.to_excel(writer,sheet_name='sheet名称')
#将多个DF写入一个工作薄的不同工作表中
3, path='路径/.xlsx'
df=pd.read_excel(path,sheet_name='sheet名')
#读取excel中指定的sheet表
4, pd.to_excel(path,index=False)
#写入excel文件时,忽略索引
5,df_empty=pd.DataFrame()
df_empty=df_empty.append(df)
#创建一个空的DF,然后将已有的DF数据内容写入到空的DF中,可以通过循环条件写入
例子:
import numpy as np
import pandas as pd
path='C:/Users/Administrator/Desktop/hanhai/bom.xls'
path2='C:/Users/Administrator/Desktop/查询条件.xlsx'
df=pd.read_excel(path,sheet_name='BOM多级展开')
df1=pd.read_excel(path,sheet_name='素材件')
df2=pd.read_excel(path,sheet_name='辅料')
dftj=pd.read_excel(path2)
cpdm=list(dftj.产品代码)
qs=list(dftj.数量)
df_1=df[['产品代码','材料代码','材料名称','产品用量','材料单位']]
df_empty=pd.DataFrame() #创建一个空DF
for x,q in zip(cpdm,qs): #通过zip方法把两个list合并成字典类似的可迭代结构
df_chaxun=df_1[df_1['产品代码']==x]
df_chaxun['产品实际用量']=df_chaxun['产品用量'].apply(lambda x:x*q)
df_empty=df_empty.append(df_chaxun) #循环写入空DF
print(df_empty)
df_empty.to_excel('C:/Users/Administrator/Desktop/查询结果.xlsx',encoding='utf8',index=False)
6,再说创建一个空DF然后赋值问题
import pandas as pd
import re
import math
dframe1 = pd.read_excel("window regulator分析报告数据对比源.xlsx", sheetname="Sheet1") #读取数据
dframe2 = pd.read_excel("window regulator分析报告数据对比源.xlsx", sheetname="Sheet2")#
dframe1["sku"] ="#" #添加一列数据,初始化为#
df = pd.DataFrame(columns = ["ebayno", "p_sku", "sale", "sku"]) #创建一个空的dataframe
# print(df)
sku = dframe2.sku.values
p_skus = dframe2.p_sku.values
# print(p_skus)
i = 0
for ps in p_skus :
dframe1.loc[dframe1.p_sku == ps,"sku"] = sku[i]
# print(dframe1.loc[dframe1.p_sku == ps])
df = df.append(dframe1.loc[dframe1.p_sku == ps], ignore_index=True) #忽略索引,往dataframe中插入一行数据
# print(df)
i = i + 1
# print(dframe1)
# print(sku.values) #将series变成数组
print(df)
df = df[["sku","ebayno","sale"]] #选取指定的列
df.to_csv("std.csv",encoding="gbk",index=False ) #写入到csv时,不要将索引写入index = False

浙公网安备 33010602011771号