Я работаю над тем, чтобы очистить часть своего кода, чтобы сделать его немного более питоническим, но мне интересно, можно ли написать ниже более приятный способ, например, методом itertools или pandas.Приведенный ниже код работает, однако я надеюсь удалить двойной цикл for и объединить немного кода по соображениям производительности.
В конечном счете, я работаю со списком индексов, которые вызывают столбец Панд.
def foo(dataset):
api_reshaped = pd.DataFrame(columns=['foo', 'bar'])
k = 0
for index, _ in dataset.iterrows():
for key in dataset.iloc[index][0][0]:
api_reshaped.loc[k, 'foo'] = key
api_reshaped.loc[k, 'bar'] = dataset.iloc[index][0][0][key]
k += 1
return api_reshaped
Ниже приведен ожидаемый ввод / вывод от этой функции:
foo_input = pd.dataframe({
'batch_data': [{'foo_query': [{'bar_query': 'data'}]}],
'query_spell': ['foo']
})
print foo_input(foo_input)
# expected_output = pd.dataframe({
# 'foo': 'foo_query',
# 'bar': [{'bar_query': 'data'}]
# })
Большое спасибо!