将矩阵转换为三列数据框
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)
我有两个 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)