首页 > 后端开发 > Python教程 > 如何高效创建 Pandas DataFrame 的笛卡尔积?

如何高效创建 Pandas DataFrame 的笛卡尔积?

Mary-Kate Olsen
发布: 2024-12-11 17:59:15
原创
1026 人浏览过

How to Efficiently Create a Cartesian Product of Pandas DataFrames?

Pandas 中的笛卡尔积:最佳实践和解决方案

使用 Pandas 数据帧时,通常需要创建两个或多个数据帧的笛卡尔积。这对于组合来自多个源的数据或探索不同变量之间的关系来说是一个有用的操作。

交叉合并方法

在最新版本的 Pandas (>= 1.2) 中,交叉合并方法

import pandas as pd

df1 = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
df2 = pd.DataFrame({'col3': [5, 6]})

df_cartesian = pd.merge(df1, df2, how='cross')
登录后复制
merge 方法提供了一种计算两个数据帧的笛卡尔积的便捷方法。要使用此方法,只需使用 how='cross' 参数调用合并函数:

生成的数据帧 df_cartesian 将包含 df1 和 df2 行的所有组合,从而产生笛卡尔积.

在合并中使用重复键

df1 = pd.DataFrame({'key': [1, 1], 'col1': [1, 2], 'col2': [3, 4]})
df2 = pd.DataFrame({'key': [1, 1], 'col3': [5, 6]})

df_cartesian = pd.merge(df1, df2, on='key')[['col1', 'col2', 'col3']]
登录后复制
对于 Pandas 之前的版本1.2 中,有必要使用稍微不同的方法来创建笛卡尔积。这种方法涉及在一个数据帧中使用重复的键,然后合并这些键:

通过创建一个为两个数据帧中的每一行重复的键,我们可以通过合并来有效地执行笛卡尔积

结论

无论您使用的是 Pandas >= 1.2 还是在早期版本中,上述方法提供了创建两个或多个数据帧的笛卡尔积的有效方法。根据您使用的 Pandas 的特定版本,一种方法可能比另一种方法更方便或更有效。

以上是如何高效创建 Pandas DataFrame 的笛卡尔积?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板