Поверните фрейм данных в одну строку со столбцами, помеченными префиксом - PullRequest
0 голосов
/ 24 апреля 2018

Так что в настоящее время я пытаюсь свернуть таблицу 7x2 в таблицу 1x14, и 8 столбцов в конечном кадре данных должны иметь префикс с исходными метками столбцов. Я чувствую, что мой ответ лежит в пределах .pivot(), но не уверен, как туда добраться. Это то, что я до сих пор:

Оригинальная таблица:

              polarity  subjectivity
  count       1.0         1.0
  mean        0.0         0.0
  min         0.0         0.0
  25%         0.0         0.0
  50%         0.0         0.0
  75%         0.0         0.0
  max         0.0         0.0

Я хочу попасть сюда:

  subjectivity_count    subjectivity_mean   subjectivity_min    subjectivity_25%    subjectivity_50%    subjectivity_75%    subjectivity_max    polarity_count  polarity_mean   polarity_min    polarity_25%    polarity_50%    polarity_75%    polarity_max
  0      1.0                  0.0               0.0             0.0             0.0             0.0             0.0             1.0             0.0             0.0             0.0             0.0             0.0             0.0

Я могу это сделать, но очень хакерским способом. Мои шаги:

1) Транспонировать оригинальный df, выбрать одну строку в качестве индекса и добавить префикс столбца

df.T.loc['subjectivity'].add_prefix('subjectivity_') 

df.T.loc['polarity'].add_prefix('polarity_')

2) Объедините их вместе, используя pd.concat

3) Создание нового конструктора pd.DataFrame для этого и транспонирование.

Это очень уродливый способ выполнить работу и кажется неэффективным, так как я создаю новый объект DataFrame каждый раз, когда я делаю это. Есть предложения?

1 Ответ

0 голосов
/ 24 апреля 2018

Это будет делать то, что вы хотите сделать.

a = list(np.linspace(0,50))
b = list(np.linspace(0,100))
df = pd.DataFrame({'polarity':a, 'subjectivity': b})
df1 = df.describe()

df2 = df1.reset_index().melt(id_vars = ['index'], value_vars = ['polarity','subjectivity'])
df2['name'] = df2['variable'] + '_' + df2['index']
df2 = df2[['name','value']].set_index('name').transpose()

Для получения информации о расплаве, вы можете перейти здесь

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