[英]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.