ФИНАЛ И ФИНАЛ2 - КОПИИ ВСЕХ ДРУГИХ
Id_x Start End From To Price Per Ton Id_y BookingId Weight In tons Reference Price
0 1 43873 43881 Delhi Bangalore 5 1 1 2 4000 10
1 1 43873 43881 Delhi Bangalore 5 2 1 1 5000 5
2 2 43891 43908 Chennai Hyderabad 6 3 2 1 2500 6
3 2 43891 43908 Chennai Hyderabad 6 4 2 2 6000 12
4 2 43891 43908 Chennai Hyderabad 6 5 2 1 4500 6
bookingPreference выглядит так:
{'data': [{'bookingId': '1', 'type': 'chocolate'}, {'bookingId': '1', 'category': 'dangerous'}, {'bookingId': '1', 'temperature': '10'}, {'bookingId': '2', 'rotated': False}, {'bookingId': '2', 'age': 15}, {'bookingId': '2', 'type': 'orange'}]}
with open('problem statement\\bookingPreferences.json') as f:
content = json.load(f)
for c in content['data']:
keys=list(c)
final[keys[1]]=pd.Series()
final2[keys[1]]=pd.Series()
final[keys[1]]=np.where(final['BookingId']==int(c[keys[0]]),c[keys[1]],final[keys[1]])
final2[keys[1]][final['BookingId']==int(c[keys[0]])]=c[keys[1]]
print(final)
print(final2)
Вывод:
Id_x Start End From To Price Per Ton ... Price type category temperature rotated age
0 1 43873 43881 Delhi Bangalore 5 ... 10 nan dangerous 10 NaN NaN
1 1 43873 43881 Delhi Bangalore 5 ... 5 nan dangerous 10 NaN NaN
2 2 43891 43908 Chennai Hyderabad 6 ... 6 orange nan nan 0.0 15.0
3 2 43891 43908 Chennai Hyderabad 6 ... 12 orange nan nan 0.0 15.0
4 2 43891 43908 Chennai Hyderabad 6 ... 6 orange nan nan 0.0 15.0
[5 rows x 16 columns]
Id_x Start End From To Price Per Ton ... Price type category temperature rotated age
0 1 43873 43881 Delhi Bangalore 5 ... 10 NaN dangerous 10 NaN NaN
1 1 43873 43881 Delhi Bangalore 5 ... 5 NaN dangerous 10 NaN NaN
2 2 43891 43908 Chennai Hyderabad 6 ... 6 orange NaN NaN False 15.0
3 2 43891 43908 Chennai Hyderabad 6 ... 12 orange NaN NaN False 15.0
4 2 43891 43908 Chennai Hyderabad 6 ... 6 orange NaN NaN False 15.0
[5 rows x 16 columns]
#####3
Проблема здесь, что сначала «тип» получает значения шоколада в 1,2, но затем они заменяются на NaN, когда оранжевый вводится в 3,4,5. Как это предотвратить?