python - Pandas dataframe 笛卡尔连接

标签 python numpy pandas

我有两个 pandas 数据框,我想将每个第二个数据框行与每个第一个数据框行组合起来,如下所示:

首先:

val1 val2
1    2
0    0
2    1

第二个:

l1 l2
a    a
b    c

结果(预期结果大小 = len(first) * len(second)):

val1 val2 l1 l2
1    2    a    a
1    2    b    c
0    0    a    a
0    0    b    c
2    1    a    a
2    1    b    b

它们没有相同的索引。

问候, 西考

最佳答案

创建代理键以在它们之间进行笛卡尔连接...

import pandas as pd

df1 = pd.DataFrame({'A': [1, 0, 2],
                    'B': [2, 0, 1],
                    'tmp': 1})

df2 = pd.DataFrame({'l1': ['a', 'b'],
                    'l2': ['a', 'c'],
                    'tmp': 1})

print pd.merge(df1, df2, on='tmp', how='outer')

结果:

   A  B  tmp l1 l2 
0  1  2    1  a  a 
1  1  2    1  b  c 
2  0  0    1  a  a 
3  0  0    1  b  c 
4  2  1    1  a  a 
5  2  1    1  b  c

关于python - Pandas dataframe 笛卡尔连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32440716/

相关文章:

python - 合并 DataFrame 中的列

python - 如何在groupby之后将数据框中的行值转换为Python中的列标签?

python - 将字典值填充为 pandas 数据框中值的总和

Python,添加 key :value to dictionary in parallelised loop

python - Django:无法包含 ManyToManyField 字段,因为手动指定了 'through' 模型

python - flask 错误 : werkzeug. routing.BuildError

python - Numpy 数组,每行删除一个任意元素

Python正则表达式,忽略字符直到某个字符匹配多次

python - 为什么 Sonic Visualizer 和我的 Python 脚本之间的频谱分析存在 dB 差异?

python - 打包 numpy 数组的更好方法?