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'