Список с несколькими деревьями и сохранение во фрейме данных pandas

#python #pandas

#python #pandas

Вопрос:

у меня есть 3 списка, например, как показано ниже:

  list1 = [1,2]
 list2 = [x,y]
 list3 = [i,j,l]
  

как я могу разделить их и сохранить в фрейме данных pandas, как следующий фрейм данных:

   list1  list2  list3
  1      x      i
  1      x      j
  1      x      l
  1      y      i
  1      y      j
  1      y      l
  2      x      i
  2      x      j
  2      x      l
  2      y      i
  2      y      j
  2      y      l
  

я не смог найти ни одного подобного вопроса в Stackoverflow.

Ответ №1:

Вы можете использовать:

 import itertools
df_new=pd.DataFrame(list(itertools.product(list1,list2,list3)),
                               columns=['list1','list2','list3'])
print(df_new)

    list1 list2 list3
0       1     x     i
1       1     x     j
2       1     x     l
3       1     y     i
4       1     y     j
5       1     y     l
6       2     x     i
7       2     x     j
8       2     x     l
9       2     y     i
10      2     y     j
11      2     y     l
  

Ответ №2:

Взломать из pandas

 pd.MultiIndex.from_product([list1,list2,list3],names=['list1','list2','list3']).to_frame().reset_index(drop=True)
Out[196]: 
    list1 list2 list3
0       1     x     i
1       1     x     j
2       1     x     l
3       1     y     i
4       1     y     j
5       1     y     l
6       2     x     i
7       2     x     j
8       2     x     l
9       2     y     i
10      2     y     j
11      2     y     l
  

Комментарии:

1. Тоже неплохо. 🙂