我有一个获取数据框和一列的函数,经过一些处理后,绘制该列,如以下行所示:
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获取字符串。但是然后必须定义名称,我不确定它是否可以在循环中使用。
谢谢!
答案 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。