pandas преобразование набора данных для нормализации данных - PullRequest
0 голосов
/ 20 марта 2020

У меня есть CSV-файл, подобный этому: Input DataFrame

Я хочу преобразовать его в pandas кадр данных, подобный этому: Output DataFrame

В основном я пытаюсь нормализовать набор данных для заполнения таблицы sql.

Я использовал json_normalize для создания отдельного набора данных из столбца жанров, но я не знаю, как преобразуйте оба столбца, как показано в приведенном выше изображении.

Некоторые предложения будут высоко оценены.

1 Ответ

1 голос
/ 20 марта 2020

Если genre_id является единственным значением чисел c (, как показано на рисунке ), вы можете использовать следующее:

#find all occurrences of digits in the column and convert the list items to comma separated string.
df['genre_id'] = df['genres'].str.findall(r'(\d+)').apply(', '.join)

#use pandas.DataFrame.explode to generate new genre_ids by comma separating them.
df = df.assign(genre_id = df.genre_id.str.split(',')).explode('genre_id') 

#finally remove the extra space
df['genre_id']  = df['genre_id'].str.lstrip() 

#if required create a new dataframe with these 2 columns only
df = df[['id','genre_id']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...