Вот что я понял из вашего вопроса:
У вас есть pandas Dataframe с одним из столбцов, содержащих json строк (или любой другой строкой, которую необходимо проанализировать в несколько столбцов)
Например,
df = pd.DataFrame({'pictures': [
'{"col1":"40092","picture_date":"2017-11-06"}',
'{"col1":"39097","picture_date":"2017-10-31"}']
})
. Вы хотите разделить два элемента ('col1' и 'picture_date') на два отдельных столбца для дальнейшей обработки (или, возможно, только один из них)
Определите функцию для разбора строки:
import json
def parse_row(r):
j=json.loads(r['pictures'])
return j['col1'],j['picture_date']
И используйте метод Pandas DataFrame.apply()
следующим образом
df1=df.apply(parse_row, axis=1,result_type='expand')
В результате получается новый фрейм данных с двумя столбцами, каждый из которых содержит проанализированные данные:
0 1
0 40092 2017-11-06
1 39097 2017-10-31
Если вам нужен только один столбец, вы можете вернуть один элемент из parse_row (вместо двухэлементного кортежа в приведенном выше примере) и просто использовать df.apply(parse_row)
.
Если значения не в формате json, просто измените parse_row
соответственно (Разделить, преобразовать строку в числа и т. Д. c.)