Я хочу создать pandas фрейм данных с несколькими списками разной длины. Ниже мой python код.
import pandas as pd
A=[1,2]
B=[1,2,3]
C=[1,2,3,4,5,6]
lenA = len(A)
lenB = len(B)
lenC = len(C)
df = pd.DataFrame(columns=['A', 'B','C'])
for i,v1 in enumerate(A):
for j,v2 in enumerate(B):
for k, v3 in enumerate(C):
if(i<random.randint(0, lenA)):
if(j<random.randint(0, lenB)):
if (k < random.randint(0, lenC)):
df = df.append({'A': v1, 'B': v2,'C':v3}, ignore_index=True)
print(df)
Мои списки следующие:
A=[1,2]
B=[1,2,3]
C=[1,2,3,4,5,6,7]
В каждом прогоне я получал разные выходные данные, и это правильно. Но не охватывает все элементы списка в каждом прогоне. За один прогон я получил вывод ниже:
A B C
0 1 1 3
1 1 2 1
2 1 2 2
3 2 2 5
В вышеприведенном выводе 'A' есть все пункты (1,2). Но в списке «B» есть только (1,2) позиции, пункт 3 отсутствует. Также в списке 'C' есть только (1,2,3,5) пунктов. (4,6,7) наименований нет в списке 'C'. Я ожидаю, что в каждом списке каждый элемент должен быть в кадре данных как минимум один раз, а элементы списка 'C' должны быть в кадре данных только один раз. Мой ожидаемый пример выходных данных выглядит следующим образом:
A B C
0 1 1 3
1 1 2 1
2 1 2 2
3 2 2 5
4 2 3 4
5 1 1 7
6 2 3 6
Руководство, чтобы получить ожидаемый результат. Заранее спасибо.