用python在同一工作簿中创建Excel工作表
我的代码中需要一个建议 我在工作簿的第1页中有一个数据框:用python在同一工作簿中创建Excel工作表,python,excel,pandas,Python,Excel,Pandas,我的代码中需要一个建议 我在工作簿的第1页中有一个数据框: column 1 column 2 000A0000 2 000B0000 3 000A0001 5 000B0001 1 我期望的结果是: 在工作簿的第2页中: column 1 column 2 000A0000 2 000A0001
column 1 column 2
000A0000 2
000B0000 3
000A0001 5
000B0001 1
我期望的结果是:
在工作簿的第2页中:
column 1 column 2
000A0000 2
000A0001 5
column 1 column 2
000B0000 3
000B0001 1
在工作簿的第3页中:
column 1 column 2
000A0000 2
000A0001 5
column 1 column 2
000B0000 3
000B0001 1
我已经完成了编码:
import pandas as pd
file="workbook.xlxs"
print(data.sheet_names)
data=data.parse("sheet1")
substrings = ['A', 'B']
T = {x: df[df['sheet1'].str.contains(x, na=False, regex=False)] for x in substrings]
for key, var in T.items():
var.to_excel(f'{key}.xlsx', index=False)
通过这个,我可以创建新的工作簿。但我需要在同一工作簿中创建新的工作表
如有任何建议,我们将不胜感激。至\u excel不会将工作表附加到您现有的文件中: 改用openpyxl:(如下所示) 此外,如果您希望动态地阅读工作表而不是特定的工作表,请执行以下操作:
f = pd.ExcelFile(file)
sheet_names = df.sheet_names
for i in list(sheet_names):
df = pd.read_excel(f,i)
这将遍历所有工作表,并提供基于工作表的数据框。要将工作表添加到同一excel文件,请使用以下模块:
import pandas as pd
import openpyxl
#reading the sheet1 using read_excel
df = pd.read_excel('workbook.xlsx', sheet_name='Sheet1')
#creating pandas ExcelWriter object and loading the excel file using `openpyxl`
df_writer = pd.ExcelWriter('workbook.xlsx', engine='openpyxl')
excel = openpyxl.load_workbook('workbook.xlsx')
df_writer.book = excel
#checking string in column 1 and writing those to respective sheets in same workbook
for string in ['A','B']:
df[df['column 1'].str.contains(string)].to_excel(df_writer,sheet_name=string)
#saving and closing writer
writer.save()
writer.close()
尝试使用xlsxwriter引擎
writer = pd.ExcelWriter('<< file_name >>', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet2')
writer.save()
writer=pd.ExcelWriter('>',engine='xlsxwriter')
df.to_excel(书写器,工作表名称='Sheet2')
writer.save()
您想在这3张工作表中写些什么?对不起,没有帮助。因为我想从Sheet1中提取数据,上面的代码没有帮助,meThis不是确切的代码,因为我是;我不清楚你的要求,我给了你一个参考,你可以在那里实现你的代码:)@user10309160:你必须通过你想要的任何方法来阅读表格。计算您的需求,然后通过answer@user10309160:您可以实现添加代码来动态读取所有工作表并创建df。@user10309160欢迎您!嘿,一个小问题对于['A','B']中的字符串
选择列表中的数据。如果我想要不包含这些列表的数据怎么办?请提供帮助。@user10309160例如,如果不需要上面列表中的数据,请使用df[~df[~column 1'].str.contains('A | B')]
,它给出了A
和B
都不存在的行。@user10309160它没有给出A
或B
的数据。它将不包括包含它们的数据。