KeyError: 'passes columns are not ALL present dataframe'
pandas将dataframe存入表格报错,暂时没找到原因,数据是没问题的,存储方法之前存储其他的也是没问题的。
留个坑
df_res = find_menu_by_url_method() # 这个方法返回一个dataframe结构
# 存储
print(df_res.info())
# 最后存储的这句报错
with pd.ExcelWriter(OUTPUT2, mode='a') as writer: # pylint: disable=abstract-class-instantiated
df_res.to_excel(writer, index=False, columns=HEADER)
忘记啥玩意错误了,现在代码如下
def read_file(path) -> pd.DataFrame:
is_exist = os.path.exists(path)
if not is_exist: # 校验表格存在性
df = pd.DataFrame(columns=HEADER)
# 新建文件并写表头
df.to_excel(path, index=False)
df = pd.read_excel(path) # 读取源文件
return df
def save_file(res_dict: dict, path: str = None) -> None: # sheet_name: str = 'Sheet1',
'''将所有的结果保存在一个sheet中,添加一列仓库名用来区分公司
'''
df = read_file(path) # 打开目标文件
index = 0
for i, (k, v) in enumerate(res_dict.items()):
for url, type in zip(v[0], v[1]):
df.loc[index] = [k, url, type]
index += 1
with pd.ExcelWriter(path, mode='a') as writer: # pylint: disable=abstract-class-instantiated
df.to_excel(writer, index=False, columns=HEADER, sheet_name='res')
# 移除无用sheet页面
res_excel = openpyxl.load_workbook(path)
res_excel_sheet = res_excel["Sheet1"]
res_excel.remove(res_excel_sheet)
res_excel.save(path)
print("创建并写入sheet页成功!")