在Python中转换DataFrame

时间:2018-05-14 11:40:32

标签: python pandas dataframe

考虑以下数据框:

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的风格?

1 个答案:

答案 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