如何为作为数据框的函数参数编写 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'
我编写了一个函数来对传入的数据帧进行一些计算。
但是,由于一些格式问题,传入的数据帧之一需要额外的工作。我想在函数中编写一个 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'