Python-Pandas的笛卡尔积
我有两个pandas数据框:
from pandas import DataFramedf1 = DataFrame({'col1':[1,2],'col2':[3,4]})
df2 = DataFrame({'col3':[5,6]})
获得其笛卡尔积的最佳实践是什么(当然不用像我这样明确地编写它)?
#df1, df2 cartesian productdf_cartesian = DataFrame({'col1':[1,2,1,2],'col2':[3,4,3,4],'col3':[5,5,6,6]})
回答:
如果每行都有一个重复的键,则可以使用merge生成笛卡尔乘积(就像在SQL中一样)。
from pandas import DataFrame, mergedf1 = DataFrame({'key':[1,1], 'col1':[1,2],'col2':[3,4]})
df2 = DataFrame({'key':[1,1], 'col3':[5,6]})
merge(df1, df2,on='key')[['col1', 'col2', 'col3']]
输出:
col1 col2 col30 1 3 5
1 1 3 6
2 2 4 5
3 2 4 6
以上是 Python-Pandas的笛卡尔积 的全部内容, 来源链接: utcz.com/qa/435776.html