我有一个Excel文件foo.xlsx
与大约40个片材sh1
,sh2
等。每个片材的格式是:
area cnt name\nparty1 name\nparty2
blah 9 5 5
word 3 7 5
在每个工作表中,我想使用格式将vars重命名name\nparty
为仅将party
用作标签。输出示例:
area cnt party1 party2 sheet
bacon 9 5 5 sh1
spam 3 7 5 sh1
eggs 2 18 4 sh2
我正在用以下文件读取文件:
book = pd.ExcelFile(path)
然后想知道我是否需要做:
for f in filelist:
df = pd.ExcelFile.parse(book,sheetname=??)
'more operations here'
# only change column names 2 and 3
i, col in enumerate(df):
if i>=2 and i<=3:
new_col_name = col.split("\n")[-1]
df[new_col_name] =
或类似的东西?
截至2019-09-09更新:
使用sheet_name
了v0.25.1代替sheetname
如果设置关键字parameter
read_excel
,则pandas
可以使用方法一次读取所有工作表sheetname=None
。这将返回一个字典-
键是工作表名称,值是作为数据帧的工作表。
使用这个,我们可以简单地遍历字典并:
rename
方法来重命名我们的列-通过使用lambda
,我们只要在有新行时就分割列表的每个列名,就可以获取列表的最后一个条目。如果没有新行,则列名不变。完成此操作后,我们将重置索引,并且一切都将恢复正常。注意:如果您在一个工作表上有聚会,但在其他工作表上却没有,则仍然可以使用,但是会用填充每个工作表的所有缺失列NaN
。
import pandas as pd
sheets_dict = pd.read_excel('Book1.xlsx', sheetname=None)
full_table = pd.DataFrame()
for name, sheet in sheets_dict.items():
sheet['sheet'] = name
sheet = sheet.rename(columns=lambda x: x.split('\n')[-1])
full_table = full_table.append(sheet)
full_table.reset_index(inplace=True, drop=True)
print full_table
印刷品:
area cnt party1 party2 sheet
0 bacon 9 5 5 Sheet1
1 spam 3 7 5 Sheet1
2 eggs 2 18 4 Sheet2
问题内容: 只要工作表不同,就可以很容易地将许多熊猫数据框添加到excel工作簿中。但是,如果要使用内置的df.to_excel功能的熊猫,将许多数据帧放入一个工作表中有些棘手。 上面的代码不起作用。您将得到错误 现在,我已经进行了足够的实验,以至于找到了使之工作的方法。 这会起作用。因此,我将这个问题发布在stackoverflow上的目的是双重的。首先,我希望这对某人在excel中将多个数据框
所以我有 1500 个 Excel 工作簿,每个工作簿都有 10 张结构完全相同的工作表。我尝试将多个Excel工作簿合并到一个文件中,并使用以下代码成功: 谢谢,努尔贝克
我知道如何复制工作表,但这将导致多个工作表。我需要的是一个输出工作表,一个接一个地包含所有的工作表。 目前我正在做的是将每个工作表导出为< code>DataTable,然后逐个导入: 但这样,我就失去了单元格样式和文本格式 有没有办法用保留样式?
我有一个Excel工作簿,其中包含36个不同的工作表,我每两周收到一次,工作表在所有标签上都有共同的标题,并且每个标签上都有不同的唯一标题,但每条记录都有一个唯一的ID,可以有多个记录。 我要做的是从所有的工作表中提取唯一的id,然后将每个工作表中的数据提取到一个工作表中,其中包含所有的公共标题和唯一标题。 我正在考虑使用下面帖子中的代码将其导入Access。连接表并将其导出回Excel中的一个工
我在页面上有一个表,我需要从表中的特定单元格中读取值。我想把这些值写到excel文件中。问题是for loop只循环一次,并且只为Excel中的第一个单元格写入值。我试过很多不同的循环,在谷歌上搜索,但都找不到答案。请帮帮忙。下面是我要编写到Excel的代码: 这是我写入excel文件的地方 循环成功执行并从表中正确打印出值,但我需要将这些值写入Excel。似乎在excel中写入第一个值后,for
问题内容: 我有一个带有源文件路径的字符串和另一个带有destfile路径的字符串,它们都指向Excel工作簿。 我想获取源文件的第一张纸并将其作为新选项卡复制到destfile(与destfile中的位置无关),然后保存它。 在or或or中找不到简单的方法。我想念什么吗? 问题答案: 解决方案1 使用该软件包的仅Python解决方案。仅数据值将被复制。 解决方案2 使用该程序包将复制操作委派给E