Я пытаюсь удалить всю нерелевантную информацию из одного из моих столбцов в моем фрейме данных, но не знаю, как это сделать. Я импортирую данные из CSV-файла прямо в мой фрейм данных.
Итак, в настоящее время моя колонка жанров выглядит так:
{'genres': {0: [{"id": 28, "name": "Action"}, {"id": 12, "name": 'Fantasy'}, etc.
Я бы хотел, чтобы это выглядело так:
{'genres': {0: "['Action', 'Fantasy']"}, etc.
Если бы кто-нибудь мог помочь мне или отправить меня в правильном направлении, чтобы сделать это, это было бы очень признательно.
1 ответ
Основываясь на единственном индексе в описании, возможно, это то, что вы ищете, explode
, transform
для серии, groupby
используя индекс, list
все имена:
data = {'genres':
{0: [{"id": 28, "name": "Action"}, {"id": 12, "name": 'Fantasy'}],
1: [{"id": 40, "name": "Crime"}, {"id": 24, "name": 'Thriller'}]
}}
df = pd.DataFrame(data)
df.head()
# genres
# 0 [{'id': 28, 'name': 'Action'}, {'id': 12, 'nam...
# 1 [{'id': 40, 'name': 'Crime'}, {'id': 24, 'name...
Выполните шаги, указанные выше:
df['genres_fix'] = df.genres.explode().transform(
pd.Series).groupby(level=0)['name'].apply(list)
df[['genres_fix']].head()
# genres_fix
# 0 [Action, Fantasy]
# 1 [Crime, Thriller]
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.
df.head().to_dict()
и вставить его как данные в вопрос, а не вставлять изображение, проверьте почему бы не публиковать изображения кода/данных (или ссылки на них) и как предоставить отличный пример пандpd.DataFrame(d)
воспроизвести кадр данных. Также, пожалуйста, напишите, как должен выглядеть ожидаемый результатproduction_country
?df.head().to_clipboard()
, а затем перейдите в SO.