Панды - рассчитать среднее по столбцам даты - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть набор данных с несколькими столбцами, чьи имена являются датами.Вот пример:

df = pd.DataFrame({'company': ['dell', 'microsoft', 'toshiba', 'apple'], 
               'measure': ['sales', 'speed', 'wait time', 'service'], 
               'category': ['laptop', 'tablet', 'smartphone', 'desktop'], 
               '10/6/2015': [234, 333, 456, 290], 
               '10/13/2015': [134, 154, 123, 177], 
               '10/20/2015': [57, 57, 63, 71]})

Я хотел бы рассчитать среднее значение для каждого месяца.Поэтому для приведенного выше примера я бы хотел, чтобы желаемый результат был:

     company    measure    category  201510
0       dell      sales      laptop  141.66
1  microsoft      speed      tablet  181.33
2    toshiba  wait time  smartphone  214.00
3      apple    service     desktop  179.33

Где 201510 - среднее значение трех столбцов даты в df.Есть ли способ сделать это с несколькими столбцами даты, используя, скажем, groupby?Буду признателен за любую помощь, я полностью новичок, когда дело доходит до Python.Должен ли я использовать подход временных рядов или есть простой способ сделать это через pandas?

1 Ответ

0 голосов
/ 02 февраля 2019

Используя filter like, отфильтруйте столбцы, затем мы конвертируем столбцы в datetime и используем groupby

s=df.filter(like='/')
s.columns=pd.to_datetime(s.columns).strftime('%Y-%m')
pd.concat([df,s.groupby(level=0,axis=1).mean()],axis=1)
Out[229]: 
     company    measure     ...     10/20/2015     2015-10
0       dell      sales     ...             57  141.666667
1  microsoft      speed     ...             57  181.333333
2    toshiba  wait time     ...             63  214.000000
3      apple    service     ...             71  179.333333
[4 rows x 7 columns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...