1
a342191555 Mar 26, 2021 via iPhone
|
2
popil1987 Mar 26, 2021 via Android
好像没有,可以用 Python 的 combination 函数
|
3
princelai Mar 26, 2021
一楼的方法应该可以,笛卡尔积对应的是 product
``` from itertools import product pd.DataFrame(product(col1.to_list(),col2.to_list(),col3.to_list())) ``` |
4
yuankui Mar 26, 2021
python 不清楚,java 或者 js 可以用 flatmap
|
5
princelai Mar 26, 2021
@princelai #3 哦对了,不引入别的包,只用 pandas 也可以实现,使用 MultiIndex 就行了
``` pd.MultiIndex.from_product([col1.to_list(),col2.to_list(),col3.to_list()]).to_frame(index=None) ``` |
6
maloneleo88 Mar 26, 2021 via Android
借楼问问 openpyxl 怎么附加写入某列,在不知道此列行长度的情况下🦉
|
7
badacook OP |
8
dongxiao Mar 26, 2021
```python
col1 = pd.Series(['a', 'b']) col2 = pd.Series(['x', 'y']) col3 = pd.Series(['1', '2']) col1, col2, col3 = map(pd.DataFrame, [col1, col2, col3]) col1.index = [1 for _ in range(len(col1))] col2.index = [1 for _ in range(len(col2))] col3.index = [1 for _ in range(len(col3))] r = ( col1 .join(col2, how="outer", lsuffix="_col1", rsuffix="_col2") .join(col3, how="outer") ) r.columns = ["col1", "col2", "col3"] print(r) ``` |