如何从数据帧列表中获取原始变量名

2024-10-02 00:41:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据帧列表,希望对其进行迭代并获得原始变量名。我尝试了以下操作,但打印行抛出错误(“DataFrame”对象没有属性“name”):

import pandas as pd

testFrame1 = pd.DataFrame(columns=["test1"])
testFrame2 = pd.DataFrame(columns=["test2"])

listOfFrames = [testFrame1,testFrame2]

for frame in listOfFrames:
    print(frame.name) #<--This throws an error

在这种情况下,我希望输出为: 测试框架1 测试框架2

背景: 我有一个函数,它接收数据帧,并用新的工作表将每个数据帧附加到Excel文件中。它可以工作,但每个新工作表都被命名为“Analysis_0”、“Analysis_1”等。我希望每个新工作表都以数据帧变量命名(在本例中为“testFrame1”、“testFrame2”等)。以下是迄今为止的功能:

def addDFWorksheetToExcelFile(excelFile,*dataFrames):
    # copied from stackoverflow
    from openpyxl import load_workbook
    book = load_workbook(excelFile)
    with pd.ExcelWriter(excelFile, engine='openpyxl') as writer:
        writer.book = book
        writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
        ## Your dataframes to append.
        frameNo = 0
        for dataFrame in dataFrames:
            # This is where I would like to name the Excel sheet after the original data frame variable name
            dataFrame.to_excel(writer, "Analysis_" + str(frameNo)) 
            frameNo += 1
        writer.save()
    # end copy stackoverflow

Tags: to数据nameindataframeforwsanalysis
1条回答
网友
1楼 · 发布于 2024-10-02 00:41:33

实际上,您可以为数据帧设置名称方法

testFrame1 = pd.DataFrame(columns=["test1"])
testFrame1.name = 'testFrame1'
testFrame2 = pd.DataFrame(columns=["test2"])
testFrame2.name = 'testFrame2'

listOfFrames = [testFrame1,testFrame2]

for frame in listOfFrames:
    print(frame.name) 

这将打印数据帧名称

相关问题 更多 >

    热门问题