Pandas сгруппированный индекс для разделения столбцов с соответствующими значениями - PullRequest
1 голос
/ 14 июля 2020

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

data = {'field1':['a','a','c','a','b','c','a','b','c','a','b','c','c'],
       'field2':[1,5,12,10,8,4,33,9,1,33,9,1,1],
}

df = pd.DataFrame(data)
df = pd.DataFrame(data, index =['2020-01-01 06:00:00-05:00', '2020-01-01 06:20:00-05:00', '2020-01-01 06:28:00-05:00',
                                '2020-01-01 06:25:00-05:00', '2020-01-01 07:00:00-05:00', '2020-01-01 07:09:00-05:00',
                                '2020-01-01 07:15:00-05:00','2020-01-01 07:48:00-05:00', '2020-01-01 06:20:00-05:00',
                               '2020-01-01 08:33:00-05:00','2020-01-01 08:38:00-05:00','2020-01-01 06:20:00-05:00',
                               '2020-01-01 08:45:00-05:00'])
df.index = pd.to_datetime(df.index)

df=df.groupby([pd.Grouper(freq='1H'), 'field1']).count()

enter image description here

and I want to convert it in something like this: введите описание изображения здесь

1 Ответ

1 голос
/ 15 июля 2020

Вы были почти у цели. Просто .unstack() И transpose итоговый фрейм данных

  df=df.groupby([pd.Grouper(freq='1H'), 'field1']).count().unstack()\
.T.reset_index().drop(columns='level_0')



  field1  2020-01-01 06:00:00-05:00  2020-01-01 07:00:00-05:00  \
0      a                        3.0                        1.0   
1      b                        NaN                        2.0   
2      c                        3.0                        1.0   

   2020-01-01 08:00:00-05:00  
0                        1.0  
1                        1.0  
2                        1.0  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...