如何将Pandas DataFrame的名称以字符串形式输出?
获取Pandas DataFrame变量名的方法
首先要明确:Pandas DataFrame对象本身没有内置属性来存储它的变量名——变量名是Python命名空间里的标识,不属于DataFrame对象本身的属性。你之前尝试的attrs('name')写法有误,attrs是字典类型,需通过键值对的方式访问。
下面给你两种可行的解决办法:
方法1:手动给DataFrame添加名称属性
先给DataFrame的attrs字典自定义名称,之后就能随时调用:
# 给DataFrame设置名称 my_dataframe.attrs['name'] = 'my_dataframe' # 打印名称 print(my_dataframe.attrs['name'])
方法2:自动匹配变量名
如果不想手动设置,可以通过遍历当前命名空间,找到对应DataFrame对象的变量名,写个简单函数即可实现:
def get_dataframe_name(df): # 遍历全局命名空间中的变量 for var_name, obj in globals().items(): # 通过内存地址判断是否为目标DataFrame if obj is df: return var_name # 未匹配到则返回None return None # 使用示例 print(get_dataframe_name(my_dataframe))
注意事项
- 如果在函数内部使用,需把
globals()换成locals(),遍历局部命名空间。 - 若有多个变量指向同一个DataFrame对象,该函数会返回第一个匹配到的变量名。
内容的提问来源于stack exchange,提问作者GEM
相关产品推荐
相关产品推荐

