我有一个有几个列的数据帧a,我想把所有这些列“加起来”得到一个数据帧B
A = [col1 col2 col3
0 1 2
1 1 0
-1 0 1]
B应该看起来像:
^{pr2}$基本上,这个操作背后的理念正是嵌入到itertools.product()得到笛卡尔积的函数。在
在itertools.product('ABCD','xy')-->;Ax Ay Bx By Cx Cy Dx Dy
我只需要运用同样的原理得到:
函数\u smg('ABCD','xy')-->;A+x A+y B+x B+y C+x C+y D+x D+y
我的数据帧很大,所以我负担不起循环,我需要一个迭代器或生成器。 如果没有函数能做到这一点,我如何构建一个生成器来实现这一点呢?在
非常感谢
这里有一种方法。您可以使用^{} 从现有列中获取所有长度为2的组合:
压缩后的元组与每个值相加:
^{pr2}$或者如果
numpy
也是一个选项:对于这个问题,实际上还有比itertools产品更精确的方法。尝试itertools combinations
相关问题 更多 >
编程相关推荐