为多个 excel 工作表保留第 N、N+1 和第 N+2 行 header 处的文本?
Retain text at N, N+1 and header at N+2th row for multiple excel sheets?
我有一个如下所示的数据框
SHEET SUBJECT Listings for 2010 hi bla bla,,,,,,
order_number,,,,,,
Date,cust,region,Abr,Number,
12/01/2010,Company_Name,Somecity,Chi,36,
12/02/2010,Company_Name,Someothercity,Nyc,156,
df = pd.read_clipboard(sep=',')
从上面的数据框中,您可以看到第一两行 (narrative text
) 只是描述,但 header/column 名称从第一行索引开始
所以,我尝试了下面的方法
df.columns = df.iloc[1] #assign actual column headers
df.drop(index=[0,1], inplace = True) #drop the actual column header row and also narrative text line from dataframe
# do some manipulation of data below (thanks to jezrael for the below code)
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}",index=False)
writer.save()
只有当只有 headers 时,以上内容才能正常工作,问题是我无法保留叙述文本(例如:我的输出中的 SHEET SUBJECT Listings for 2010 hi bla bla
和 order_number,,,,,,
excel 文件 (duck_data.xlsx)
如何在 duck_data.xlsx
的每个作品sheet(输出文件)中保留这两个叙述文本并存储 [=38 的第 3 个单元格中的列 headers =] 文件?
我希望我的输出如下所示。您可以看到输出 excel 文件的两个作品 sheet 中的数据不同,但我保留了所有作品 sheet 的叙述文本 header输出 excel 文件。
是否可以根据生成的 sheet 数量将此文本复制到每个 sheet?还有其他 approach/idea 在每个 sheet 中保留这些文本吗?
使用:
#add text to variable from first column in original DataFrame
text = df.columns[0]
#add order no to variable by first value of first column
order_no = df.iloc[0,0]
df.columns = df.iloc[1] #assign actual column headers
df.drop(index=[0,1], inplace = True)
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
#strating row for write data is 2 (changed default 0)
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}", index=False, startrow = 2)
workbook = writer.book
worksheet = writer.sheets[f"DATA_{cust}_{reg}"]
#to first cell in excel write text variable
worksheet.write(0, 0, text)
worksheet.write(1, 0, order_no)
writer.save()
我有一个如下所示的数据框
SHEET SUBJECT Listings for 2010 hi bla bla,,,,,,
order_number,,,,,,
Date,cust,region,Abr,Number,
12/01/2010,Company_Name,Somecity,Chi,36,
12/02/2010,Company_Name,Someothercity,Nyc,156,
df = pd.read_clipboard(sep=',')
从上面的数据框中,您可以看到第一两行 (narrative text
) 只是描述,但 header/column 名称从第一行索引开始
所以,我尝试了下面的方法
df.columns = df.iloc[1] #assign actual column headers
df.drop(index=[0,1], inplace = True) #drop the actual column header row and also narrative text line from dataframe
# do some manipulation of data below (thanks to jezrael for the below code)
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}",index=False)
writer.save()
只有当只有 headers 时,以上内容才能正常工作,问题是我无法保留叙述文本(例如:我的输出中的 SHEET SUBJECT Listings for 2010 hi bla bla
和 order_number,,,,,,
excel 文件 (duck_data.xlsx)
如何在 duck_data.xlsx
的每个作品sheet(输出文件)中保留这两个叙述文本并存储 [=38 的第 3 个单元格中的列 headers =] 文件?
我希望我的输出如下所示。您可以看到输出 excel 文件的两个作品 sheet 中的数据不同,但我保留了所有作品 sheet 的叙述文本 header输出 excel 文件。
是否可以根据生成的 sheet 数量将此文本复制到每个 sheet?还有其他 approach/idea 在每个 sheet 中保留这些文本吗?
使用:
#add text to variable from first column in original DataFrame
text = df.columns[0]
#add order no to variable by first value of first column
order_no = df.iloc[0,0]
df.columns = df.iloc[1] #assign actual column headers
df.drop(index=[0,1], inplace = True)
writer = pd.ExcelWriter('duck_data.xlsx',engine='xlsxwriter')
for (cust,reg), v in df.groupby(['cust','region']):
#strating row for write data is 2 (changed default 0)
v.to_excel(writer, sheet_name=f"DATA_{cust}_{reg}", index=False, startrow = 2)
workbook = writer.book
worksheet = writer.sheets[f"DATA_{cust}_{reg}"]
#to first cell in excel write text variable
worksheet.write(0, 0, text)
worksheet.write(1, 0, order_no)
writer.save()