Как корректно транспонировать (развернуть) строку в столбцы?
Имею следующий df:
qw as df rt fg gh qw fg
12 34 56 67 87 89 98 09
Данный df получаю следующим способом, выборкой строки из общего table_df:
df = table_df.loc[[18]]
Просьба, подсказать, как можно корректно и универсально развернуть строку, то есть привести к следующему виду:
qw 12
as 34
df 56
rt 67
fg 87
gh 89
qw 98
fg 09
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
Воспользуйтесь методом DataFrame.stack():
res = df.stack().reset_index(name="val").drop(columns="level_0").rename(columns={"level_1":"key"})
результат:
In [194]: res
Out[194]:
key val
0 qw 12
1 as 34
2 df 56
3 rt 67
4 fg 87
5 gh 89
6 qw.1 98
7 fg.1 9
если нужно получить Pandas.Series:
In [196]: df.stack().reset_index(level=0, drop=True)
Out[196]:
qw 12
as 34
df 56
rt 67
fg 87
gh 89
qw.1 98
fg.1 9
dtype: int64
или же просто транспонировать:
In [199]: df.T
Out[199]:
0
qw 12
as 34
df 56
rt 67
fg 87
gh 89
qw.1 98
fg.1 9
Автор решения: strawdog
→ Ссылка
при df:
qw as df rt fg gh qw.1 fg.1
0 12 34 56 67 87 89 98 9
можно воспользоваться
res = df.swapaxes(1,0)
res:
0
qw 12
as 34
df 56
rt 67
fg 87
gh 89
qw.1 98
fg.1 9