У меня есть CSV-файл фильмов, которые я пытаюсь очистить.Я использую ноутбук Jupyter.
Он имеет 10000 строк и 5 столбцов.Ниже приведены некоторые примеры данных:
Movie Name | Genre | Date Released | Length | Rating |
The Godfather | Crime | March 24, 1972 | 175 | R |
The Avengers | Action | May 5, 2012 | 143 | PG-13 |
The Dark Knight | Action | Crime | July 18, 2008 | 152 | PG-13
Обратите внимание, что для «Темного рыцаря», поскольку существует 2 жанра, строки сдвигаются вправо.Я хочу очистить данные так, чтобы строка стала следующей:
The Dark Knight | Action, Crime | July 18, 2008 | 152 | PG-13
То, что я сделал (в блокноте Jupyter)
import pandas as pd
path = 'movies.csv'
df = pd.read_csv(path, header=0, names=['Movie Name', 'Genre', 'Date Released','Length','Rating','Extra'])
ctrCheck = 0
months = ["January","February","March","April","May","June","July","August","September","October","November","December"]
while ctrCheck < len(df.index):
check = str(df['Date Released'][ctrCheck])
if any(month in check for month in months):
replaceStr = df.loc[ctrCheck, 'Genre'] + "," + df.loc[ctrCheck, 'Date Released']
df.loc[ctrCheck, 'Genres'] = replaceStr
df.loc[ctrCheck, 'Date Released'] = df.loc[ctrCheck, 'Length']
df.loc[ctrCheck, 'Length'] = df.loc[ctrCheck, 'Rating']
df.loc[ctrCheck, 'Rating'] = df.loc[ctrCheck, 'Extra']
ctrCheck = ctrCheck + 1
df.drop(labels='Extra', inplace=True, axis='columns')
Есть ли лучший способ сделать это, кромеперебрать 10000 строк?
Спасибо!