Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python在同一工作簿中创建Excel工作表_Python_Excel_Pandas - Fatal编程技术网

用python在同一工作簿中创建Excel工作表

用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

我的代码中需要一个建议

我在工作簿的第1页中有一个数据框:

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
的数据。它将不包括包含它们的数据。