在pandas Dataframe中创建重复值

时间:2017-10-25 11:23:40

标签: python pandas numpy dataframe

我有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)中有任何方法来执行此操作吗?或者是循环执行此操作的唯一方法?

1 个答案:

答案 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构造函数。