在Python中转换数据帧
考虑到以下数据帧:在Python中转换数据帧,python,pandas,dataframe,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值
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
的样式?您可以使用熊猫。透视表
:
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
我可以将索引减少到y吗?在这种情况下,从第一排的20到第二排的10。@YQ.Wang,我相信这是可能的。您可以查看如何对熊猫中的索引进行排序。类似于
.sort\u index(升序=False)
的方法可能会起作用。