Я хотел бы реструктурировать свои данные в фрейме данных:
df = pd.DataFrame({'order_id': ['A', 'B'],
'address': [{'city': "NY", 'latitude': 2.12, 'longitude' : 3.12,'country_code' : "US"},
{'city': "KL", 'latitude': 12.12, 'longitude' : 23.12,'country_code' : "MY"}]},
columns= ['order_id', 'address'])
df
order_id address
0 A {'city': 'NY', 'latitude': 2.12, 'longitude': 3.12, 'country_code': 'US'}
1 B {'city': 'KL', 'latitude': 12.12, 'longitude': 23.12, 'country_code': 'MY'}
Что мне нужно, это:
order_id address_city address_country_code
0 A NY US
1 B KL MY
Вот мой рабочий код:
new_cols = ['city', 'country_code']
for col in new_cols:
df['address_{}'.format(col)] = \
df['address'].map(lambda x: np.nan if pd.isnull(x) else x[col])
df.drop(['address'], axis=1)
Как я могу оптимизировать код, чтобы сделать его более эффективным?