Python:将以下数据帧解压到矩阵中最有效/最快的方法是什么?
我有以下网格(实际上是一个数据帧): 然后我使用Python:将以下数据帧解压到矩阵中最有效/最快的方法是什么?,python,pandas,Python,Pandas,我有以下网格(实际上是一个数据帧): 然后我使用apply params['res'] = params.apply(lambda row: func(x=params['alpha'],y=params['gamma'],axis=1) 如何将上述内容解包到下面的矩阵/数据框中 pd.DataFrame(elements of params['res'], index = np.linspace(0,1,10), columns = n
apply
params['res'] = params.apply(lambda row: func(x=params['alpha'],y=params['gamma'],axis=1)
如何将上述内容解包到下面的矩阵/数据框中
pd.DataFrame(elements of params['res'],
index = np.linspace(0,1,10),
columns = np.linspace(0,2,10))
您可以先将
res
序列转换为numpy数组,然后使用重塑
方法:
result_df = pd.DataFrame(params['res'].to_numpy().reshape(10,10),
index = np.linspace(0,1,10),
columns = np.linspace(0,2,10))
使用较小尺寸的示例:
#模拟res
res=np.random.randint(0,10,9)
物件
数组([9,3,5,9,3,1,4,0,6])
res.重塑(3,3)
数组([[9,3,5],
[9, 3, 1],
[4, 0, 6]])
如果这不是您预期的结果,您可以将其转换为:
res.reformate(3,3).T
数组([[9,9,4],
[3, 3, 0],
[5, 1, 6]])
您正在寻找的轴心点
:
params.pivot(index='alpha', columns='gamma', values='res')
如果这个问题只问从res列生成10 x 10 numpy 2d阵列/矩阵的最快方法,那么我认为这个解决方案就是:
params.res.values.reshape(10,10)
IIUC您想从您创建的
res
列中创建一个10×10 numpy的2d数组/矩阵吗?是的。行索引将是alpha范围,列名是gamma范围。这里的func是什么?你能提供你期望的数据吗?实际上,函数并不重要。您可以为列res指定0个值。因此,重塑方法会先按行再按列重新排列红色元素吗?我说的对吗?我正在添加一个重塑的例子。在这种情况下,重塑并不是真正的重塑。哦,我知道你在那里做了什么!他希望索引和列是alpha
和gamma
。谢谢你指出:)
params.res.values.reshape(10,10)