Транспонирование по переменной - PullRequest
0 голосов
/ 24 мая 2018

Просто начав с python и pandas, SO отлично подходит для обучения.

Несколько часов просматривал документацию и учебные пособия, но я думаю, что мне не хватает python vocab, чтобы найти то, что я 'м через.

У меня есть данные о температуре (c), записанные в одно и то же время (b), но в разных местах (a).Я хотел бы транспонировать ( unstack? ) по переменной.Например:

  a              b             c                  
0001    2016-02-01 00:00    19.93
0001    2016-02-01 00:30    19.5
0001    2016-02-01 01:00    19.25
...
0002    2016-02-01 00:00    23.37
0002    2016-02-01 00:30    22.93
0002    2016-02-01 01:00    22.56

для перехода на:

                    0001       0002
2016-02-01 00:00    19.93     23.37

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 24 мая 2018

Я думаю, вы хотите что-то вроде этого:

import pandas as pd

data = [
['0001',    '2016-02-01 00:00',    19.93],
['0001',    '2016-02-01 00:30',    19.5],
['0001',    '2016-02-01 01:00',    19.25],
['0002',    '2016-02-02 00:00',    23.37],
['0002',    '2016-02-02 00:30',    22.93],
['0002',    '2016-02-02 01:00',    22.56]
]

df = pd.DataFrame(data, columns = ['valuekey', 'a', 'b'])

df['a'] =  pd.to_datetime(df['a'], format='%Y-%m-%d %H:%M').dt.time

df = df.pivot(index = 'a', columns = 'valuekey', values = 'b')

print(df)

#output
valuekey   0001   0002
a                     
00:00:00  19.93  23.37
00:30:00  19.50  22.93
01:00:00  19.25  22.56

Я предполагаю, что ваше время указано в часах и минутах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...