如何在Python数据框架中重复单个值和其他列一样多次



我必须创建具有两列的数据帧,其中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"]]

注意:不适用于循环方法bcs,我有200万行

这里有一个解决方案,使用numpy.repeat来重复list1中的元素,并使用itertools.chain.from_interable来压平嵌套列表,

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

相关内容

最新更新