如何用Python生成原数组无重复全组合并输出为DataFrame/Series?
获取所有无重复3元素组合并转为DataFrame/Series
实现步骤与代码
在Mac OSX的Jupyter Notebook中,你可以借助itertools生成所有无重复的3元素组合,再用pandas转为DataFrame或Series,具体代码如下:
- 导入所需库
import itertools import pandas as pd
- 定义原数组
t_array = ['META', 'AAPL', 'AMZN', 'NFLX', 'GOOG']
- 生成所有无重复3元素组合
itertools.combinations会生成数组中所有不考虑顺序的3元素组合,正好满足你的需求:
all_combinations = list(itertools.combinations(t_array, 3))
- 转为DataFrame格式
如果需要结构化的表格形式,转成DataFrame后可以通过列名或行索引快速调用:
df = pd.DataFrame(all_combinations, columns=['Stock1', 'Stock2', 'Stock3'])
调用示例:df.loc[2]会返回第3组组合。
- 转为Series格式
如果只需要以序列形式存储每个组合,可转为Series:
series = pd.Series(all_combinations, name='Stock Combinations')
调用示例:series[4]会返回第5组组合。
内容的提问来源于stack exchange,提问作者swagdevotee008
相关产品推荐
相关产品推荐

