使用 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' 参数调用合并函数:
在合并中使用重复键
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中文网其他相关文章!