1
a342191555 2021-03-26 09:08:45 +08:00 via iPhone
|
2
popil1987 2021-03-26 09:10:04 +08:00 via Android
好像没有,可以用 Python 的 combination 函数
|
3
princelai 2021-03-26 10:01:06 +08:00
一楼的方法应该可以,笛卡尔积对应的是 product
``` from itertools import product pd.DataFrame(product(col1.to_list(),col2.to_list(),col3.to_list())) ``` |
4
yuankui 2021-03-26 10:14:49 +08:00
python 不清楚,java 或者 js 可以用 flatmap
|
5
princelai 2021-03-26 10:24:18 +08:00
@princelai #3 哦对了,不引入别的包,只用 pandas 也可以实现,使用 MultiIndex 就行了
``` pd.MultiIndex.from_product([col1.to_list(),col2.to_list(),col3.to_list()]).to_frame(index=None) ``` |
6
maloneleo88 2021-03-26 10:27:54 +08:00 via Android
借楼问问 openpyxl 怎么附加写入某列,在不知道此列行长度的情况下🦉
|
7
badacook OP |
8
dongxiao 2021-03-26 15:25:23 +08:00
```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) ``` |