Как вернуть сводную таблицу к исходному формату записи - PullRequest
0 голосов
/ 06 августа 2020
import pandas as pd

import numpy as np

df=pd.DataFrame(np.array([['M',1, 1, 2, 3], 
['F', 2, 4, 5, 6], ['M', 3, 7, 8, 9]]),columns=['SEX','AGE','A','B','C'])

dfm=pd.melt(df,id_vars=('SEX','AGE'),value_vars=list(df.columns[2:]),
         var_name='LOCATION',value_name='DEATHS')

На основе предоставленного кода я могу создать базовую c таблицу и объединить таблицы из df в dfm, используя 'AGE' и 'SEX' в качестве переменных идентификатора.

Есть ли простой способ вернуть эту таблицу в исходный формат? Переход от dfm> df при условии, что у меня нет df.

большое спасибо

1 Ответ

0 голосов
/ 08 августа 2020

Метод pivot_table должен позволить вам вернуться к исходному фрейму данных

# Change data types from object integer
dfm[['AGE', 'DEATHS']] = dfm[['AGE', 'DEATHS']].astype(int)

# Pivot dataframe to "undo melt"
reshaped = dfm.pivot_table(index=['SEX', 'AGE'],columns=['LOCATION'], 
                           values='DEATHS')

# Reset index to flatten dataframe
reshaped.reset_index(inplace=True)

# Change column name attribute to blank
reshaped.columns.rename('',inplace=True)


   SEX  AGE A   B   C
0   F   2   4   5   6
1   M   1   1   2   3
2   M   3   7   8   9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...