将矩阵转换为三列数据框

Convert matrix to Dataframe with three columns

我有两个 Dataframes('x' 和 'y'),它们定义了一个网格(或坐标),第三个 Dataframe 具有各自的值('z')。它们是二维插值的结果。

import pandas as pd

df_x = pd.DataFrame(["a", "b", "c"])
df_y = pd.DataFrame(["alpha", "beta", "gamma"])
df_z = pd.DataFrame([1, 2, 3, 4, 5, 6,...9])

为了继续,我想将所有数据合并到一个 Dataframe 中,结构如下(更像是一个类似数据库的结构):

df_new = pd.DataFrame({'x': ["a", "a", "a", "b", "b", "b", "c", "c", "c"], 'y': ["alpha", "beta", "gamma", "alpha", "beta", "gamma", "alpha", "beta", "gamma"], 'z': [1,2,3,4,5,6,7,8,9]})
x y z
a alpha 1
a beta 2
a gamma 3
b alpha 4
b beta 5
b gamma 6
c alpha 7
c beta 8
c gamma 9

一定有一种重新排列 Dataframes 的简单方法,对吧?什么是这种问题的好标签(没有,搜索不是很有收获)?

非常感谢:)

Ps.: 我为 R 找到了一些答案,但是 none 为 Python 找到了一些答案。

检查merge

out = df_x.merge(df_y,how='cross').join(df_z)