У меня большой массив данных, состоящий из 144005 строк. Один из столбцов информационного кадра представляет собой строку словарей, например
'{"Step ID":"78495","Choice Number":"0","Campaign Run ID":"23199"},
{"Step ID":"78495","Choice Number":"0","Campaign Run ID":"23199"},
{"Step ID":"78495","Choice Number":"0","Campaign Run ID":"23199"}'
. Я хочу преобразовать эту строку в отдельные словари. Я использовал json.loads()
для этой цели, однако мне приходилось перебирать эту строку словаря по одному, преобразовывать ее в словарь, используя json.loads()
, затем преобразовывать это в новый фрейм данных и продолжать добавлять к этомупока я итерирую весь исходный фрейм данных.
Я хотел бы знать, существует ли более эффективный способ сделать это, так как для итерации по всему фрейму данных, состоящему из 144005 строк, требуется много времени.
Вот фрагмент того, что я делал:
d1 = df1['attributes'].values
d2 = df1['ID'].values
for i,j in zip(d1,d2):
data = json.loads(i)
temp = pd.DataFrame(data, index = [j])
temp['ID'] = j
df2 = df2.append(temp, sort=False)
Мой столбец «атрибуты» состоит из строки словаря в виде строки, а столбец «Ид» содержит ее соответствующуюId