Я хочу изменить структуру данных так, чтобы строки становились столбцами, но не могли этого сделать - PullRequest
1 голос
/ 19 сентября 2019

Мой фрейм данных выглядит так:

import pandas as pd
df = pd.DataFrame({'0':['USA'],
                   '1':['UK'],
                   '2':['UAE']})

Я хочу, чтобы измененный фрейм данных выглядел так:

df1 = pd.DataFrame({'Country':['USA','UK','UAE'],
                   'Prob':['0','1','2']})

Ответы [ 3 ]

1 голос
/ 19 сентября 2019

Используя атрибут values, вы можете извлечь базовый массив, хранящий фактические данные вашего DataFrame, и использовать его для создания нового DataFrame.Функция ravel() сглаживает исходный двумерный массив с одной строкой в ​​одномерный массив, так что из него можно построить столбец.Весь DataFrame может быть построен следующим образом:

df1 = pd.DataFrame({'Country':df.values.ravel(), 'Prob':df.columns.values})
0 голосов
/ 19 сентября 2019

Попробуйте transpose, assign и rename

df.T.assign(Prob=df.columns).rename(columns={0: 'Country'})

Out[63]:
  Country Prob
0     USA    0
1      UK    1
2     UAE    2
0 голосов
/ 19 сентября 2019

Я добился этого таким образом, но мне было интересно, есть ли способ сделать это с расплавом и изменением формы:

cols1 = df.iloc[0]

df_cols1 = pd.DataFrame({'Country':cols1})

cols2 = list(df.columns)

df_cols2 = pd.DataFrame({'Prob':cols2})

df_cols1.reset_index(drop=True, inplace=True)

df_cols2.reset_index(drop=True, inplace=True)

df1 = pd.concat([df_cols1,df_cols2], axis=1)

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