当前位置: 首页 > 知识库问答 >
问题:

如何在数据框中添加一列,说明每行的工作表名称?蟒蛇

左博学
2023-03-14

我正在使用具有五张工作表的数据帧,我想使用其中的四张。所以我可以加载它:

< code>df = pd.read_excel('***。xls ',sheet_name=['a ',' b ',' c ',' d'])

但现在我想添加一列,说明每一行在哪一张表中,我不知道该怎么做。我试过这样的东西

for name, frame in df.items():
        frame['Sheet'] = name
        df = df.append(frame, ignore_index=True)

但是我收到了以下错误:

AttributeError:“个集合。OrderedDict“对象没有属性”append“

任何帮助都将不胜感激。提前感谢!

假设这是我连接工作表后的数据的样子:

df = pd.concat(pd.read_excel(***.xls, sheet_name=['a', 'b', 'c', 'd'],
                          header=1), ignore_index=True, sort=False)

串联数据

我的目标是添加一列,说明每行来自哪个工作表,就像这样......

使用工作表名称行连接数据

希望这能帮助你理解我想做什么。

(编辑)我还想知道,如果我想使用一个数据框架中的所有工作表,但不想列出每个工作表的单独名称,该如何操作。谢谢!

共有2个答案

桑博远
2023-03-14

如果在read_excel方法中指定sheet_name,则将返回 type对象。并且 ordered_dict对象没有 附加函数。你可以试试这个,

import pandas as pd

data = pd.read_excel('***.xls', sheet_name=['a', 'b', 'c', 'd'])

df = pd.DataFrame()

for name, frame in data.items():
    frame['sheet'] = name
    df = df.append(frame)

print(df)
濮阳烨然
2023-03-14

IIUC,尝试DataFrame.assign中的列表理解

sheets = ['a', 'b', 'c', 'd']

df = pd.concat([pd.read_excel('***.xls', sheet_name=s)
                .assign(sheet_name=s) for s in sheets])

如果要使用所有图纸并指定一列图纸名称,可以执行以下操作:

workbook = pd.ExcelFile('***.xls')
sheets = workbook.sheet_names

df = pd.concat([pd.read_excel(workbook, sheet_name=s)
                .assign(sheet_name=s) for s in sheets])
 类似资料:
  • 问题内容: 我有一些像这样的数据框: A中值 的 可能范围仅为0到7 。 另外,我有一个8个元素的列表,如下所示: 如果A列中的元素是 n ,我需要将List中的第 n 个元素插入新列,例如’D’。 如何一口气做到这一点而又不遍历整个数据框? 产生的数据框如下所示: 注意:数据框很大,迭代是最后一个选项。但是如果需要的话,我也可以将其他数据结构(如dict)排列在“ List”中的元素上。 问题答

  • 如何将Sencha按钮添加到列表的每一行?我在图像中添加了文本占位符,以说明按钮应该放在哪里。

  • 问题内容: 有谁知道如何通过运行脚本向SQL Server列添加描述?我知道使用SQL Server Management Studio创建列时可以添加描述。 我该如何编写脚本,以便当我的SQL脚本创建该列时,还添加了对该列的描述? 问题答案: 我会说您可能想使用sp_addextendedproperty存储的proc来做到这一点。 Microsoft有一些很好的文档。 试试这个:

  • 我有两个数据框: 我希望对 df2 执行逐行运算,我将 df2 中的每一列与 df1 中的相应行相乘,然后执行求和。 例如,对于df2的第1行,我希望计算: 同时排除不匹配(df1中的行)或具有NAs的列。 我在df1中有几千行,在df2中有数千行和列。 非常感谢任何帮助!! PS。我在Perl中使用哈希实现了这一点,并使用system()调用在Rmarkdown文档中执行这些计算。为了保持它的完

  • 很容易将列表列表转换为数据帧: 但是我如何将df转换回列表列表呢?

  • 我正在尝试添加溢出图标(以显示弹出菜单)到列表的每一行。每行左侧有图像(70dp*70dp),右侧有溢出图标图像(27dp*70dp)。 我现在的布局是这样的: 但是这样,中间行的文本会重叠右侧的溢出图标。这是我不想要的。问题是,点击溢出图标被视为点击行,因此弹出菜单永远不会出现。 如何在RelativeLayout中指定将左图像对齐到左侧,右图像对齐到右侧,并将中间的所有可用空间用于textvi