Как повторить одно значение столько раз, сколько другой столбец во фрейме данных Python? - PullRequest
1 голос
/ 27 февраля 2020

Мне нужно создать фрейм данных с двумя столбцами, в котором df['col1'] строк должно повторяться столько раз, сколько другой столбец df['col2']. Это должно повторяться много раз в зависимости от списка данных.

Df:
     col1      col2

     Fruit     Apple
     Fruit     Mango
     Fruit     banana
     Place     US
     Place     UK
     Place     France 
     Place     India

Где у меня есть данные в следующем формате List1 =["fruit", "place"] List2 =[["Apple", "Mango", "Banana"], ["US", "UK", "France", "India"]]

Примечание : не для подхода l oop у меня 2 миллиона строк

1 Ответ

1 голос
/ 27 февраля 2020

Вот решение, использующее numpy .repeat для повторения элементов в list1 и itertools.chain.from_iterable, чтобы сгладить вложенный список,

list1 =['fruit', 'place']
list2 =[['Apple', 'Mango', 'Banana'], ['US', 'UK', 'France', 'India']]

import itertools
import numpy as np

l1 = np.repeat(np.array(list1), [len(i) for i in list2])
l2 = np.array(list(itertools.chain.from_iterable(list2)))
pd.DataFrame({'col1':l1, 'col2':l2})



    col1    col2
0   fruit   Apple
1   fruit   Mango
2   fruit   Banana
3   place   US
4   place   UK
5   place   France
6   place   India
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...