如何为作为数据框的函数参数编写 if 语句

How to write an if statement for a function argument that is a dataframe

我编写了一个函数来对传入的数据帧进行一些计算。

但是,由于一些格式问题,传入的数据帧之一需要额外的工作。我想在函数中编写一个 if 语句来确定是否传入了特定的数据帧,它会做一些格式化工作。问题是变量是数据框类型,所以我不知道如何只使用名称来开发 if 语句。

我尝试了一些方法,包括尝试使用 , +& 将字符串添加到变量名称。我试图将 df 转换为带有 df.to_string() 的字符串。我已经尝试了这些函数大纲的一些变体:

a_df
b_df

def calc_mean_max(df):
    df_string = "a"
    if df_string in df:
        #do formatting
    else:
        #do regular calculations


def calc_mean_max(df):
    if df == "a_df":
        #do formatting
    else:
        #do regular calculations

如果我能澄清这个问题,请告诉我,我觉得这应该是一个非常简单的解决方案,但也许我错了。预先感谢所有帮助!

正如我在评论中所说,无法在您的函数中获取数据框名称,但有一个优雅的解决方案。您可以使用数据框的 attrs 字典(注意警告)。

def calc_mean_max(df):
    if df.attrs['name'] == "a_df":
        #do formatting
    else:
        #do regular calculations


a_df = pd.DataFrame(...)
a_df.attrs['name'] = 'a_df'

b_df = pd.DataFrame(...)
b_df.attrs['name'] = 'b_df'