使用 Args 将函数应用于多个 pandas 列
Apply function to multiple pandas columns with Args
我写了下面的函数:
def unique_values(df, column):
unique = df[column].unique()
clean = pd.DataFrame.from_dict(unique)
clean.columns = [column]
return clean
我想将以下函数应用于 df 中的各个列。就像这样:
unique1, unique2, unique3 = unique_values(df, "Column1", "Column2", "Column3")
如果我按以下方式添加参数:
def unique_values(df, *column):
unique = df[column].unique()
clean = pd.DataFrame.from_dict(unique)
clean.columns = [column]
return clean
并像这样应用函数:
unique1, unique2, unique3 = unique_values(df, "Column1", "Column2", "Column3")
我收到以下错误:
KeyError: ('Column1', 'Column2', 'Column3')
任何帮助将不胜感激
您可以通过遍历 column
:
def unique_values(df, *column):
to_return=[]
for col in column:
unique = df[col].unique()
clean = pd.DataFrame.from_dict(unique)
clean.columns = [col]
to_return.append(clean)
return to_return
# this way this works:
unique1, unique2, unique3 = unique_values(df, "Column1", "Column2", "Column3")
您可以编写一个小的包装函数来调用您的 unique_values()
函数,并使用您作为参数传递的列列表,如下所示:
def df_unique_values(df, *columns):
return [unique_values(df, x) for x in columns]
此函数 returns 一个列表,其中包含针对不同列每次调用 unique_values()
的结果。像这样使用这个函数:
unique1, unique2, unique3 = df_unique_values(df, "Column1", "Column2", "Column3")
我写了下面的函数:
def unique_values(df, column):
unique = df[column].unique()
clean = pd.DataFrame.from_dict(unique)
clean.columns = [column]
return clean
我想将以下函数应用于 df 中的各个列。就像这样:
unique1, unique2, unique3 = unique_values(df, "Column1", "Column2", "Column3")
如果我按以下方式添加参数:
def unique_values(df, *column):
unique = df[column].unique()
clean = pd.DataFrame.from_dict(unique)
clean.columns = [column]
return clean
并像这样应用函数:
unique1, unique2, unique3 = unique_values(df, "Column1", "Column2", "Column3")
我收到以下错误:
KeyError: ('Column1', 'Column2', 'Column3')
任何帮助将不胜感激
您可以通过遍历 column
:
def unique_values(df, *column):
to_return=[]
for col in column:
unique = df[col].unique()
clean = pd.DataFrame.from_dict(unique)
clean.columns = [col]
to_return.append(clean)
return to_return
# this way this works:
unique1, unique2, unique3 = unique_values(df, "Column1", "Column2", "Column3")
您可以编写一个小的包装函数来调用您的 unique_values()
函数,并使用您作为参数传递的列列表,如下所示:
def df_unique_values(df, *columns):
return [unique_values(df, x) for x in columns]
此函数 returns 一个列表,其中包含针对不同列每次调用 unique_values()
的结果。像这样使用这个函数:
unique1, unique2, unique3 = df_unique_values(df, "Column1", "Column2", "Column3")