考虑以下数据框:
import pandas as pd
import numpy as np
import random
np.random.seed(10)
df1 = pd.DataFrame({'x':[1,2,3,4,5,1,2,3,4,5],
'y':[10,10,10,10,10,20,20,20,20,20],
'z':np.random.normal(size = 10)
})
我想将x
值转换为列,将y
值转换为索引(降低),并在数据框中使用相应的z值。它就像这样df2:
df2 = pd.DataFrame(np.random.randn(2,5), index = [20,10], columns=[1,2,3,4,5])
如何将df1
转换为df2
的风格?
答案 0 :(得分:0)
您可以使用pandas.pivot_table
:
res = df1.pivot_table(index='y', columns='x', values='z')
您可能希望删除或更改索引名称,但这是您的结果:
x 1 2 3 4 5
y
10 1.331587 0.715279 -1.545400 -0.008384 0.621336
20 -0.720086 0.265512 0.108549 0.004291 -0.174600