У меня есть столбец, который является списком словаря. Я извлек только значения по имени ключа и сохранил его в список. Поскольку мне нужно запустить столбец в tfidVectorizer, мне нужно, чтобы столбцы были строкой слов. Мой код выглядит следующим образом.
def transform(s,to_extract):
return [object[to_extract] for object in json.loads(s)]
cols = ['genres','keywords']
for col in cols:
lst = df[col]
df[col] = list(map(lambda x : transform(x,to_extract='name'), lst))
df[col] = [', '.join(x) for x in df[col]]
для тестирования, вот 2 строки.
data = {'genres': [[{"id": 851, "name": "dual identity"},{"id": 2038, "name": "love of one's life"}],
[{"id": 5983, "name": "pizza boy"},{"id": 8828, "name": "marvel comic"}]],
'keywords': [[{"id": 9663, "name": "sequel"},{"id": 9715, "name": "superhero"}],
[{"id": 14991, "name": "tentacle"},{"id": 34079, "name": "death", "id": 163074, "name": "super villain"}]]
}
df = pd.DataFrame(data)
Я могу извлечь необходимые данные и сохранить их соответствующим образом. Тем не менее, я считаю, что коды слишком многословны, и я хотел бы знать, есть ли более питонный способ достичь того же результата?
Желаемый вывод одной строки должен быть строкой, разделенной только запятой. Например, «Двойная идентичность, любовь к жизни».