如何在图的标题中打印数据框名称?

时间:2019-01-10 22:16:40

标签: python pandas dataframe

我有一个获取数据框和一列的函数,经过一些处理后,绘制该列,如以下行所示:

def plot_dist(df,col):
    ax=sns.countplot(x=col,data=df)

当我对多个数据框重复此功能时,我想在图的标题中显示数据框名称,例如:“ col在dataframe df中的分布”

plt.title('Distribution of '+ col + 'in dataframe' + df.name );
问:如何获取数据框名称?根据{{​​3}},可以写入df.name ='DFNAME',然后通过df.name获取字符串。但是然后必须定义名称,我不确定它是否可以在循环中使用。 谢谢!

2 个答案:

答案 0 :(得分:1)

我在这里找到了不错的功能:(Get the name of a pandas DataFrame

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

它将为您提供帮助。

def plot_dist(df,col):
    ax=sns.countplot(x=col,data=df)
    ax.set_title(get_df_name(df))

答案 1 :(得分:0)

作为一个初学者,我感到惊讶的是,经验丰富的程序员很难获得我们想要达到的目标。就我而言,我只想打印数据框的名称和大小。我希望这会有所帮助:

def dfshape(df):
    dfname =[x for x in globals() if globals()[x] is df][0]
    print("'"+str(dfname)+"'"+" dataframe shape is:"+str(df.shape))

与对打印语句进行硬编码相比,这是过度设计的结果,但是2合1。对原始解决方案而言,归功于cors。