Предположим, у меня был pandas
фрейм данных, который выглядел примерно так:
A B C D value
1 4 6 9 100
1 4 6 10 101
1 5 7 9 100
1 5 7 11 102
1 5 8 10 105
То есть есть некоторые идентифицирующие признаки, комбинация которых однозначно идентифицирует строку, а затем некоторое значение. В этом случае в A, B, C, D
имеется 4 идентифицирующих объекта, и комбинация из четырех значений будет уникальной в рамках фрейма данных.
И я хочу print
следующий вложенный оператор if
:
if A == 1
if B == 4
if C == 6
if D == 9
100
if D == 10
101
if B == 5
if C == 7
if D == 9
100
if D == 11
102
if C == 8
if D == 10
105
Каков эффективный (с точки зрения памяти, требуемой для хранения строки) способ кодирования данных с переменным числом идентификаторов A, B, ...
в этот формат, если я знаю, что идентифицирующие столбцы уже расположены в порядке увеличение мощности?
and
также разрешено, поэтому я также могу представить дерево как:
if A == 1
if B == 4 and C == 6
if D == 9
100
if D == 10
101
if B == 5
if C == 7
if D == 9
100
if D == 11
102
if C == 8 and D == 10
105
Было бы экстатически c о последнем, но решение, которое достигает первого, уже будет решить мою проблему!
Вот пример df
Я булыжник:
pd.DataFrame({'A': [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3],
'B': [4, 4, 5, 5, 5, 4, 4, 4, 4, 5, 4, 5, 5, 5, 5],
'C': [6, 6, 7, 7, 8, 6, 7, 7, 7, 8, 6, 7, 8, 8, 8],
'D': [9, 10, 9, 11, 10, 12, 12, 13, 15, 10, 9, 10, 9, 16, 17],
'value': [100, 101, 100, 102, 105, 103, 103, 100, 101, 107, 102, 100, 111, 105, 109]})