获取pandas DataFrame的名称

时间:2015-07-30 15:01:31

标签: python pandas dataframe

如何获取DataFrame的名称并将其打印为字符串?

示例:

boston(分配给csv文件的var名称)

boston = read_csv('boston.csv')

print ('The winner is team A based on the %s table.) % boston

5 个答案:

答案 0 :(得分:25)

您可以使用以下内容为数据框命名,然后在任意位置调用名称:

import pandas as pd
df = pd.DataFrame( data=np.ones([4,4]) )
df.name = 'Ones'

print df.name
>>>
Ones

希望有所帮助。

答案 1 :(得分:8)

有时df.name无效。

您可能会收到错误消息:

  

'数据帧'对象没有属性' name'

尝试以下功能:

def get_df_name(df):
    name =[x for x in globals() if globals()[x] is df][0]
    return name

答案 2 :(得分:6)

在许多情况下,不需要附加到pd.DataFrame对象的自定义属性。另外,请注意pandas - 对象属性may not serialize。因此,酸洗会丢失这些数据。

相反,请考虑使用适当命名的密钥创建字典,并通过dfs['some_label']访问数据框。

df = pd.DataFrame()

dfs = {'some_label': df}

答案 3 :(得分:4)

here我所了解的DataFrames是:

  

DataFrame是一个二维标记数据结构,其中包含可能不同类型的列。您可以将其视为电子表格或SQL表或Series对象的字典。

系列是:

  

Series是一个一维标记数组,能够保存任何数据类型(整数,字符串,浮点数,Python对象等)。

系列具有name属性,可以这样访问:

 In [27]: s = pd.Series(np.random.randn(5), name='something')

 In [28]: s
 Out[28]: 
 0    0.541
 1   -1.175
 2    0.129
 3    0.043
 4   -0.429
 Name: something, dtype: float64

 In [29]: s.name
 Out[29]: 'something'

编辑:根据OP的评论,我认为OP正在寻找类似的东西:

 >>> df = pd.DataFrame(...)
 >>> df.name = 'df' # making a custom attribute that DataFrame doesn't intrinsically have
 >>> print(df.name)
 'df'

答案 4 :(得分:-1)

这是一个示例函数: 'df.name = file`:下面代码中的第六行

def df_list(): filename_list = current_stage_files(PATH) df_list = [] for file in filename_list: df = pd.read_csv(PATH+file) df.name = file df_list.append(df) return df_list