Как создать многослойный фрейм данных pandas, используя Python? - PullRequest
0 голосов
/ 01 мая 2020

Я хочу создать фрейм данных, как показано ниже.

C1  C2  C3  C4

1   1   1   1
1   2   2   2
1   2   2   3
1   2   3   4
1   2   3   5
2   3   4   6
3   4   5   7

В столбце C4 должны быть уникальные значения. Значения столбца C4 должны принадлежать любому из столбцов C3. Значения столбца C3 должны принадлежать любому из столбцов C2. Значения столбца C2 должны принадлежать любому из столбцов C1. Значения столбца должны быть C1

Я использовал ниже образец Python код.

import  pandas as pd
import  numpy as np

C1 =  [1, 2]
C2 =  [1, 2, 3,4]
C3 =  [1, 2, 3, 4,5]
C4 =  [1,2,3,4,5,6,7]

Z = [C1,C2,C3,C4]

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=['C1', 'C2', 'C3','C4']).T.sample(frac=1)
print (df)

Ниже мой вывод.

 C1 C2 C3 C4
  1  4  2  2
  1  3  4  6
  2  1  2  4
  1  2  5  1
  2  4  5  7
  1  2  3  5
  2  2  1  3

Но я не мог получить вывод согласно моей логике c. Значение 2 в столбце C3 принадлежит 1 и 4 столбца C2. Также значение 2 в столбце C2 относится к 1 и 2 столбца C1. Направь меня, чтобы получить результат согласно моей логике c. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...