![]() | 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) ``` |