Применение одной и той же функции к нескольким фреймам данных панд для получения фреймов данных - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь применить одну и ту же функцию к нескольким панам данных, но в результате получается объект, в то время как в результате мне нужен фрейм данных. Я также пытался использовать «трансляцию», но это не очень помогло

Ниже приводится функция, которая в основном присваивает имя столбцу индекса:

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

И я применяю его к фреймам данных уникальности и асимметрии, которые в основном состоят из числа уникальных значений для каждого поля и асимметрии:

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

Тип данных уникальности и асимметрии является объектом:

dtype: object

Может ли кто-нибудь помочь мне решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 17 января 2019

Используйте 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])
0 голосов
/ 17 января 2019

Функция остается прежней, только что добавил возврат: def assign_name (name_df): name_df.index.name = "Поле" Возвращение (name_df) Сохранение всех данных в виде списка и применение функции в списке:
list_df = [уникальные, асимметрия, df1_transposed, колтипы] list_df = [df.pipe (assign_name) для df в list_df] Получите доступ к каждому фрейму данных, как если бы вы обращались к элементам списка: list_df [3]

0 голосов
/ 17 января 2019
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)
...