在 Pandas 中:
df = pd.DataFrame({'row1':['a','b','a','a','b','b','a','b','b','a'], 'row2':['x','x','y','y','y','x','x','y','x','y'],'col':[1,2,1,2,2,1,2,1,1,2],'val':[34,25,22,53,33,19,42,38,33,61]})
p = pd.pivot_table(df,values='val',rows=['row1','row2'],cols='col')
col 1 2
row1 row2
a x 34 42
y 22 57
b x 26 25
y 38 33
是否可以在适合在 R 中进行分析的数据框中 reshape 数据透视表?类似以下类型:
row1 row2 col val
a x 1 34
a y 1 22
a x 2 42
a y 2 57
b x 1 26
b y 1 38
b x 2 25
b y 2 33
最佳答案
一种方法是使用 stack
:
In [11]: p.stack()
Out[11]:
row1 row2 col
a x 1 34
2 42
y 1 22
2 57
b x 1 26
2 25
y 1 38
2 33
dtype: int64
这没有给出名称属性,因此您必须按照您的方式设置它 reset the index :
In [12]: df = p.stack().reset_index(name='val')
In [13]: df
Out[13]:
row1 row2 col val
0 a x 1 34
1 a x 2 42
2 a y 1 22
3 a y 2 57
4 b x 1 26
5 b x 2 25
6 b y 1 38
7 b y 2 33
关于python - 如何以适合在 R 中分析的格式重新排列 pandas 中的表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18551342/