我有多个数据帧,看起来像这样,数据是不相关的。
我想将它们合并到excel文件中的多个选项卡中。
是否可以在列标题上方添加另一行,并在将文件保存到excel之前将标题插入第一个单元格。
我现在就是这样做的。
with pd.ExcelWriter('merged_file.xlsx',engine='xlsxwriter') as writer:
for filename in os.listdir(directory):
if filename.endswith('xlsx'):
print(filename)
if 'brands' in filename:
some function
elif 'share' in filename:
somefunction
else:
some function
df.to_excel(writer,sheet_name=f'{filename[:-5]}',index=True,index_label=True)
writer.close()
但是sheet_name太长了,这就是为什么我想在列标题上方添加标题。
我试过这个代码,
columns = df.columns
columns = list(zip([f'{filename[:-5]}'] * len(df.columns), columns))
columns = pd.MultiIndex.from_tuples(columns)
df2 = pd.DataFrame(df,index=df.index,columns=columns)
df2.to_excel(writer,sheet_name=f'{filename[0:3]}',index=True,index_label=True)
但最终看起来像这样,所有的数据都不见了,
应该是这样的
可以使用MultiIndex。有一个例子:
import pandas as pd
df = pd.read_excel('data.xls')
header = pd.MultiIndex.from_product([['Title'],
list(df.columns)])
pd.DataFrame(df.to_numpy(), None , columns = header)
此外,我还可以在Deepnote(我最喜欢的工具)中与您分享我的解决方案和真实数据。您可以随意复制和玩自己的游戏。xls:https://deepnote.com/publish/3cfd4171-58e8-48fd-af21-930347e8e713
您可以先从sedond行写入数据,然后将文本写入第一个单元格:
df = pd.DataFrame({'col': list('abc'), 'col1': list('def')})
print (df)
col col1
0 a d
1 b e
2 c f
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', startrow = 1, index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
text = 'sometitle'
worksheet.write(0, 0, text)
writer.save()
那么对于阅读需要:
title = pd.read_excel('test.xlsx', nrows=0).columns[0]
print (title)
sometitle
df = pd.read_excel('test.xlsx', skiprows=1)
print (df)
col col1
0 a d
1 b e
2 c f
我正在尝试在联接。但是对我来说,缺少一个功能。我为员工创建了,这些网格分为特定的部门,但有员工,这些员工仅在部门中。 不允许在一上添加。 所以结果应该是这样的: 即使< code>Vaadin不直接允许,有什么解决方案可以让我这样做吗? 因为如果我尝试过,它会引发异常
我来自Sublime,在那里如果你打开一个新文件,它将使用这个文件的第一行作为标签的名称。我如何在不保存文件的情况下用VS代码完成同样的工作?目前,如果我试图做一些类似快速区分的事情,或者如果我做一些笔记,记住什么是什么是很烦人的。
我正在尝试将Excel(.xls,.xlsx)文件转换为CSV,使用 对于xlsx到CSV
不久前,一个大的Excel文件被导入到PostgreSQL表中。Excel中的布局如下所示(请将列表编号视为行号): 一些专栏|另一些专栏|还有另一个专栏| Descriptiontext foo | Descriptiontext 2 | bar foo bar | 值a |值b |值c | 值aa |值bb |值cc | 所以有一个标题行和列名,然后是一行,每个列有一个描述文本,然后是数百行和
报告的标题由10个元素组成,如下所示: 实际上是这样的: 这和垂直照明有关吗?我已经把它搞定了。 我的jrxml文件中的片段:
我正在开发一个应该删除命名列的小PowerShell脚本。有没有办法不选择标题为“xyz”的列? 我试图通过 并将结果连接到逗号分隔的字符串中并删除不需要的标头 然后使用