我的代码应该生成一个excel文件,并且我正在基于另一个excelfile填充很多值。首先,我需要创建所有标头,共3个类别,共3个。也就是说,我使用pandas MultiIndex在顶部的类别和下面的标题中编写类别。这样可以生成带有所需标题和填充值的excel文件。
但是
1)如何在此基于元组的MultiIndex中将日期列设置为索引?现在,它以行号索引。
2)如何格式化元组的标题名称? excel不处理元组,因此worksheet.write()无法处理此问题。
欢迎您提出任何更好的解决方法!
我的代码看起来像这样:
import pandas as pd
heading1 = 'Date'
heading2 = 'A'
heading3 = 'B'
heading4 = 'C'
heading5 = 'D'
heading6 = 'E'
heading7 = 'F'
headers = [heading1,heading2,heading3,heading4,heading5,heading6,heading7]
df = pd.DataFrame(columns=headers)
## Dates - One Year
start_date = '01/01/2019'
end_date = '31/12/2019'
df['Date'] = pd.date_range(start=start_date,end=end_date)
L = [('Cat1','Date','B'),('Cat2','C','D'), ('Cat3', 'E','F')]
cols = [(new, c) for new, start, end in L for c in df.loc[:, start:end].columns]
df.columns = pd.MultiIndex.from_tuples(cols)
df.to_excel("out.xlsx")
df1 = pd.read_excel("out.xlsx")
df_compare= pd.read_excel("compare.xlsx")
df[('Cat1','B')] = 'input text'
for i in range (0,len(df1)):
for j in range (0,len(df_compare)):
if df.iloc[i][0] == df_compare['Date'][j] and df.iloc[i][1] == df_compare['BB'][j]:
df[('Cat1','C')][i] = df_compare['CC'][j]