从 Meshgrid 重塑 Pandas DataFrame

Bri*_*ack 5 python numpy pandas

如果我构造一个熊猫数据帧如下:

import numpy as np
import pandas as pd

x = np.arange(-5.01, 5.01, 0.25)
y = np.arange(-5.01, 5.01, 0.25)
xx, yy = np.meshgrid(x, y)
z = np.sin(xx**2+yy**2)
df = pd.DataFrame(z, index=x, columns=y)
Run Code Online (Sandbox Code Playgroud)

我现在有一个 41x41 的 DataFrame,其中每个值对应一个 x,y 对。我想重塑这个 DataFrame 以便我有 3 列(X、Y、Z)和 1681 行,并带有一个范围从 0-1680 的新任意索引。

作为旁注,如果我的数据框已经处于所需的形式,我相信这与撤消 df.pivot('X','Y','Z') 相同,但我不确定如何完成此操作以及。

Eri*_*ric 4

为什么不在 numpy 中完成这一切呢?

>>> data = np.array([xx, yy, z]).reshape(3, -1).T
>>> data
array([[-5.01      , -5.01      , -0.0652361 ],
       [-4.76      , -5.01      , -0.59221922],
       [-4.51      , -5.01      ,  0.9936343 ], ...
Run Code Online (Sandbox Code Playgroud)

  • 这是另一个问题的正确答案。问题发生变化或者答案不应该被接受(很好的答案,但没有解决数据框点) (2认同)