Python 以编程方式将DataFrame名称添加到列

Python 以编程方式将DataFrame名称添加到列,python,pandas,Python,Pandas,这应该是一个非常简单的问题,但我希望通过编程将DataFrame的名称插入到DataFrame的列名中 假设我有以下数据帧: name_of_df = pandas.DataFrame({1: ['a','b','c','d'], 2: [1,2,3,4]}) print name_of_df 1 2 0 a 1 1 b 2 2 c 3 3 d 4 我想有以下几点: name_of_df = %%some_functio

这应该是一个非常简单的问题,但我希望通过编程将
DataFrame
的名称插入到
DataFrame
的列名中

假设我有以下
数据帧

name_of_df = pandas.DataFrame({1: ['a','b','c','d'], 2: [1,2,3,4]})
print name_of_df
        1  2
     0  a  1
     1  b  2
     2  c  3
     3  d  4
我想有以下几点:

name_of_df = %%some_function%%(name_of_df)

print name_of_df
           name_of_df1  name_of_df2
        0  a            1
        1  b            2
        2  c            3
        3  d            4
…如您所见,其中数据帧的名称通过编程输入到列名中。我知道
熊猫数据帧
没有
\uuuuu name\uuuuu
属性,所以我对如何实现这一点一无所知


请注意,我希望以编程方式执行此操作,因此使用硬编码的
'name\u of_df'
字符串更改列的名称将不起作用。

从链接的问题中,您可以执行类似的操作。多个名称可以指向同一个数据帧,因此这将仅获取“第一个”数据帧


非常相关的问题:。这实际上非常困难。是否可以在创建df名称的一开始就跟踪它们?或者将它们放在您通过引用号调用的列表中:
myList[2]
或类似的东西?不幸的是,我事先无法知道
DataFrame
对象的名称,因为此函数将有多个用例。为什么要/需要这样做?我看不到一个用例。。。
def first_name(obj):
   return [k for k in globals() if globals()[k] is obj and not k.startswith('_')][0]


In [24]: first_name(name_of_df)
Out[24]: 'name_of_df'