是否有一种pandas
矢量化的方法来生成所有成对行组合的特定子集,如下所示:给定一组可分辨的行,我想将组中的每一行与所有其他行(即,组外行和组内行)配对。因此,如果整个集合的长度为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
如果您不介意将模型与自身进行比较,那么可以使用merge
如果您有熊猫>;1.2您可以跳过“关键”把戏,只需将how=“cross”传递给合并
相关问题 更多 >
编程相关推荐