Функция, которая применяет groupby

#python-2.7 #pandas

#python-2.7 #панды

Вопрос:

У меня есть множество фреймов данных, к которым я хочу применить функцию.

Мои фреймы данных выглядят следующим образом:

 Year  ID   Pressure
1984  1    0.2
1985  2    0.5
1986  3    0.7
 

Я пытаюсь:

 def f(x):
   return x.groupby(['ID']).Pressure.mean().to_frame().reset_index()

#apply the function to dataframes
df.apply(f)
df2.apply(f)
 

но это возвращает:

  KeyError: ('ID', u'occurred at index Year')
 

без функции я могу делать то, что хочу, вот так:

 df=df.groupby(['ID']).Pressure.mean().to_frame().reset_index()
 

Ответ №1:

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

 f(df)
f(df2)