如何用最佳方式获得两个列表中所有可能组合的数值,在pandas dataframe中提供两列?
我已经使用itertools获取了一个包含组合的列表,但无法弄清如何将其放入dataframe中。
以下是我的尝试:
import itertools
import pandas as pd
income_range = np.linspace(1,3,3)
costs_range = np.linspace(1, 3, 3)
all_combinations = [list(zip(each_permutation, costs_range)) for each_permutation in itertools.permutations(income_range, len(costs_range))]
df = pd.DataFrame(all_combinations)
这是我得到的输出结果。
| | 0 | 1 | 2 |
|---:|:-----------|:-----------|:-----------|
| 0 | (1.0, 1.0) | (2.0, 2.0) | (3.0, 3.0) |
| 1 | (1.0, 1.0) | (3.0, 2.0) | (2.0, 3.0) |
| 2 | (2.0, 1.0) | (1.0, 2.0) | (3.0, 3.0) |
| 3 | (2.0, 1.0) | (3.0, 2.0) | (1.0, 3.0) |
| 4 | (3.0, 1.0) | (1.0, 2.0) | (2.0, 3.0) |
| 5 | (3.0, 1.0) | (2.0, 2.0) | (1.0, 3.0) |
这是我想要的输出结果
| Income | Costs |
| ------ | ----- |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 3 | 1 |
| 3 | 2 |
| 3 | 3 |