我有3个清单 -
Name = ["ABC", "DEF", "GHI"]
Year = [2016,2017]
Month = ["Aug","Jul","Jun"]
我想从这些列表中创建一个数据框,如下所示 -
df -
Name Year Month
ABC 2016 Aug
ABC 2016 Jul
ABC 2016 Jun
ABC 2017 Aug
ABC 2017 Jul
ABC 2017 Jun
DEF 2016 Aug
DEF 2016 Jul
DEF 2016 Jun
DEF 2017 Aug
DEF 2017 Jul
DEF 2017 Jun
..... and so on
列表中的所有值。在python(pandas或numpy或scipy)中有任何方法来执行此操作吗?或者是循环执行此操作的唯一方法?
答案 0 :(得分:0)
使用itertools.product
:
pd.DataFrame(list(itertools.product(Name, Year, Month)),
columns=['Name', 'Year', 'Month'])
Name Year Month
0 ABC 2016 Aug
1 ABC 2016 Jul
2 ABC 2016 Jun
3 ABC 2017 Aug
4 ABC 2017 Jul
5 ABC 2017 Jun
6 DEF 2016 Aug
7 DEF 2016 Jul
8 DEF 2016 Jun
9 DEF 2017 Aug
10 DEF 2017 Jul
11 DEF 2017 Jun
12 GHI 2016 Aug
13 GHI 2016 Jul
14 GHI 2016 Jun
15 GHI 2017 Aug
16 GHI 2017 Jul
17 GHI 2017 Jun
如果你想要一个快速的笨拙的笛卡尔产品,我建议你看看
将product
替换为numpy
替代方案应该很简单。剩下要做的就是调用pd.DataFrame
构造函数。