Python с использованием melt и pivot для преобразования одного ряда в 3 ряда - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь преобразовать одну строку в три строки, используя melt и pivot.
У меня ничего не получилось.

Первоначальный df:

df = {'district': {0: 'A.A'},
 'origin_gateway_airport_code': {0: 'A'},
 'dest_gateway_airport_code': {0: 'B'},
 'trade_lane': {0: 'A-B'},
 'service_level': {0: 'economy'},
 'density': {0: '<1:2'},
 'main_price': {0: 2.65},
 'min_charge1': {0: 0.2},
 'per_kg_charge1': {0: 0.19},
 'min_charge2': {0: 0.1},
 'per_kg_charge2': {0: 0.32},
 'min_trans_time_hours': {0: 72},
 'max_trans_time_hours': {0: 96}}

enter image description here

И я пытаюсь сделать так, чтобы это выглядело так:

{'district': {0: 'A.A', 1: 'A.A', 2: 'A.A'},
 'origin_gateway_airport_code': {0: 'A', 1: 'A', 2: 'A'},
 'dest_gateway_airport_code': {0: 'B', 1: 'B', 2: 'B'},
 'trade_lane': {0: 'A-B', 1: 'A-B', 2: 'A-B'},
 'service_level': {0: 'economy', 1: 'economy', 2: 'economy'},
 'density': {0: '<1:2', 1: '<1:2', 2: '<1:2'},
 'min_trans_time_hours': {0: 72, 1: 72, 2: 72},
 'max_trans_time_hours': {0: 96, 1: 96, 2: 96},
 'charge_name': {0: 'main_price', 1: 'charge1', 2: 'charge2'},
 'charge_price': {0: 2.65, 1: 0.19, 2: 0.32},
 'min_price': {0: 0.0, 1: 0.2, 2: 0.1}}

enter image description here

Нужны советы, как использовать его с расплавом и поворотом, пожалуйста. Все, что мне удалось сделать, это разделить некоторые из них, но я не смог получить минимальную цену, чтобы присоединиться к реальной плате.

...