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