将相同的功能应用于多个熊猫数据框以获取数据框

时间:2019-01-17 11:08:18

标签: python pandas apply

我试图将相同的功能应用于多个熊猫数据框,但结果是一个对象,而我需要数据框作为结果。我也尝试过使用“广播”,但这并没有太大帮助

以下是基本上为索引列分配名称的功能:

def assign_name(name_df):
  name_df.index.name="Fields"

&我将其应用于唯一性和偏度数据帧,该数据帧基本上由每个字段和偏度的唯一值的数量组成:

uniques,skewness = (df.apply(assign_name)for df in [uniques,skewness])

唯一性和偏度的数据类型是object:

dtype: object

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

def assign_name(x):
  x.index.name="Fields"
  return x

ll = [type(x) for x in [assign_name(df) for df in [df1, df2]]
print(ll)

答案 1 :(得分:0)

使用pipe并确保您的函数使用return

def assign_name(name_df):
    name_df.index.name="Fields"
    return df

uniques, skewness = (df.pipe(assign_name)for df in [uniques,skewness])

答案 2 :(得分:0)

该函数保持不变,只是添加了一个返回:     def Assign_name(name_df):         name_df.index.name =“字段”         返回(name_df) 将所有数据框存储为列表并在列表上应用功能:
    list_df = [唯一性,偏度,df1_transposed,coltypes]     list_df = [list_df中df的df.pipe(assign_name)] 就像访问列表元素一样访问每个数据框:     list_df [3]