【发布时间】:2021-07-20 01:35:52
【问题描述】:
是否有一种pandas 向量化方式来生成所有成对行组合的某个子集,如下所示:给定一组可区分的行,我想将该组中的每一行与所有其他行配对(即两者都有 ex -group 和组内行)。因此,如果整个集合的长度为 n 并且长度为 k, k << n 的组,那么我正在寻找矢量化的 O(nk) 解决方案。
例如,假设给定如下数据框
CarMaker Model HorsePower TopSpeed
0 Audi S3 100 200
1 Audi S5 110 210
2 BMW M3 120 220
3 BMW M4 130 230
4 Mercedes GLS 140 240
5 Mercedes AMG 150 250
来自易于复制的代码
input_df = pd.DataFrame({
"CarMaker": ["Audi", "Audi", "BMW", "BMW", "Mercedes", "Mercedes" ],
"Model": ["S3", "S5", "M3", "M4", "GLS", "AMG"],
"HorsePower": [100, 110, 120, 130, 140, 150],
"TopSpeed": [200, 210, 220, 230, 240, 250]
})
而尊贵的群体是奥迪汽车,我想将所有奥迪车型与所有其他行配对以获得
CarMaker_main Model_main CarMaker_other Model_other HP_main HP_other TopSpeed_main TopSpeed_other
0 Audi S3 Audi S5 100 110 200 210
1 Audi S3 BMW M3 100 120 200 220
2 Audi S3 BMW M4 100 130 200 230
3 Audi S3 Mercedes GLS 100 140 200 240
4 Audi S3 Mercedes AMG 100 150 200 250
5 Audi S5 BMW M3 110 120 210 220
6 Audi S5 BMW M4 110 130 210 230
7 Audi S5 Mercedes GLS 110 140 210 240
8 Audi S5 Mercedes AMG 110 150 210 250
【问题讨论】: