如何在Python中获取DataFrame的名称?

SPy*_*SPy -1 python dataframe python-3.6

我有以下python函数将数据框导出到csv文件.我用下面的脚本调用它

finalExport(dataAllR, sourcePath, header, started)
Run Code Online (Sandbox Code Playgroud)
  • dataAllR:数据帧的名称
  • sourcePath:路径
  • header:列的列表
  • started: 时间

def finalExport(data, exportPath, header, te):
    print('# USDF: "finalExport" :-')
    exportPath = exportPath + '\\final_py_upload' + data + '.csv'
    data.to_csv(exportPath, columns = header, sep = ',', index = False)
    print('Process done, result file stored in: ', exportPath)
    if te != '': tpe(te)
    return
Run Code Online (Sandbox Code Playgroud)

我想使用dataframe的名称,即dataAllR我在脚本中调用函数时传递的名称:

exportPath = exportPath + '\\final_py_upload' + data + '.csv'
#                                                ^
Run Code Online (Sandbox Code Playgroud)

我想根据数据框名称生成文件名.

请帮忙.

Chr*_*ean 7

由于Python允许您为对象分配任意属性名称,因此可以为name数据框指定一个名称来表示它的名称:

import pandas as pd 
df = pd.DataFrame()
df.name = 'My Data Frame'
print(df.name) # My Data Frame
Run Code Online (Sandbox Code Playgroud)

在您的情况下,namedataAllR以下内容定义属性后:

dataAllR.name = 'dataAllR'
Run Code Online (Sandbox Code Playgroud)

你会用:

exportPath = exportPath + '\\final_py_upload' + data.name + '.csv'
Run Code Online (Sandbox Code Playgroud)

或者,甚至更好:

exportPath = f'{exportPath}\\final_py_upload{data.name}.csv'
Run Code Online (Sandbox Code Playgroud)