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

Python 如何在绘图标题中打印数据框名称?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个函数,它获取一个数据帧和一列,经过一些处理后,绘制该列,如下所示: def plot_dist(df,col): ax=sns.countplot(x=col,data=df) 当我对几个数据帧重复此函数时,我希望在绘图的标题中有数据帧名称,如:“dataframe df中col的分布” 问:如何获取数据帧名称?根据,可以编写df.name='DFNAME',然后通过df.name获取字符串。但是必须定义名称,我不确定它是否在循环中起作用。 谢谢大家! 我在这里找到了很好的函数

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

def plot_dist(df,col):
    ax=sns.countplot(x=col,data=df)
当我对几个数据帧重复此函数时,我希望在绘图的标题中有数据帧名称,如:“dataframe df中col的分布”

问:如何获取数据帧名称?根据,可以编写df.name='DFNAME',然后通过df.name获取字符串。但是必须定义名称,我不确定它是否在循环中起作用。
谢谢大家!

我在这里找到了很好的函数:()

它会帮助你的

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

作为一个初学者,我很惊讶有经验的程序员很难达到我们想要达到的目标。在我的例子中,我只想打印数据框的名称和大小。我希望这有助于:

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。

不清楚您在最后一句中的意思
df.name
是数据帧的一个属性,您可以使用
df.name='NameOfDataFrame'
设置名称,然后使用
df.name
访问它,它将返回字符串'NameOfDataFrame'@G.Anderson。我希望直接从函数输入中获得完全相同的名称,而不是手动定义,正如在那个链接中所说的,如果我不明白,我很抱歉,但我不完全理解这个问题。如果要使用数据帧的名称,必须以某种方式对其进行定义。也许在函数定义中可以添加可选参数<代码>定义绘图区(df,col,name='mydf'):。如果不想设置名称,则不能使用该名称,但可以使用任何其他您喜欢的字符串。也许你想要的行为的一个例子会有所帮助?当你调用函数时,你希望发生什么,你提到的“循环”是什么?@G.Anderson如果问题不太清楚,很抱歉。我感谢你的评论。我有几个数据帧(例如dfUS和dfEU),出于实际/视觉原因,我只想在绘图顶部打印该名称。当我阅读它们时,我只想从例如dfUS=pd.read\u csv(…)中获取名称。请参阅下面的有效答案。
def plot_dist(df,col):
    ax=sns.countplot(x=col,data=df)
    ax.set_title(get_df_name(df))
def dfshape(df):
    dfname =[x for x in globals() if globals()[x] is df][0]
    print("'"+str(dfname)+"'"+" dataframe shape is:"+str(df.shape))