繁体   English   中英

如何将pivot表恢复为原始输入格式

[英]How to pivot table back to original entry format

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')

根据提供的代码,我可以创建一个基本表,并使用“AGE”和“SEX”作为 id 变量将表从 df 融合到 dfm。

有没有一种简单的方法可以将此表恢复为原始格式? 假设我没有 df,从 dfm > df 开始。

非常感谢

pivot_table 方法应该允许您返回到原来的 dataframe

# 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM