在 Pandas 中使用两个或多个数据帧时,可能需要获取它们的笛卡尔积,这会产生一个新的数据帧输入数据帧中行的所有组合。
在 Pandas 的最新版本中,可以使用 merge 函数通过 how='cross' 参数来执行此操作。这种方法既简洁又高效:
import pandas as pd df1 = pd.DataFrame({'col1':[1,2],'col2':[3,4]}) df2 = pd.DataFrame({'col3':[5,6]}) df_cartesian = df1.merge(df2, how='cross')
import pandas as pd from pandas import merge df1 = pd.DataFrame({'key':[1,1], 'col1':[1,2],'col2':[3,4]}) df2 = pd.DataFrame({'key':[1,1], 'col3':[5,6]}) merge(df1, df2,on='key')[['col1', 'col2', 'col3']]这种方法涉及更多,但在旧版本的 Pandas 中有效。
以上是如何高效计算 Pandas 中 DataFrame 的笛卡尔积?的详细内容。更多信息请关注PHP中文网其他相关文章!