Возникли проблемы при создании фрейма данных pandas из списков с использованием python - PullRequest
0 голосов
/ 23 апреля 2020

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

A =  [1, 2]
B =  [1, 2, 3, 4, 5]
C =  [1, 2, 3, 4, 5, 6, 7]

Мой Python код такой же, как и для создания фрейма данных:

import  pandas as pd
import  numpy as np

A =  [1, 2]
B =  [1, 2, 3, 4, 5]
C =  [1, 2, 3, 4, 5, 6, 7]

Z =  [A,B,C]
n =  max(len(x) for x in Z)

a =  [np.hstack((np.random.choice(x, n - len(x)), x)) for x in Z]

df = pd.DataFrame(a, index=['A', 'B', 'C']).T.sample(frac=1)

print (df)

Я получил вывод, как показано ниже:

   A  B  C
1  2  1  2
5  1  4  6
6  2  5  7
3  2  2  4
2  2  1  3
4  1  3  5
0  1  1  1

В вышеприведенном выводе фрейма данных нет проблем в столбцах «A» и «C». Но в столбце «B» значение 1 относится к значениям 1 и 2 столбца «A». Мой ожидаемый результат - значения столбца «B» должны принадлежать любому из значений столбца «A», и то же, что и значения столбца «C», должны принадлежать любому из значений столбца «B», не кратному. Каждый элемент списков «A», «B» и «C» должен присутствовать в кадре данных как минимум один раз. Мой ожидаемый пример выходных данных выглядит следующим образом:

   A  B  C
1  2  1  2
5  1  4  6
6  2  5  7
3  2  2  4
2  2  1  3
4  1  3  5
0  2  1  1

Руководство, чтобы получить ожидаемый результат.

...