Извлечение колонны панд - PullRequest
0 голосов
/ 14 октября 2018

У меня есть набор данных фильмов и мне дано столбец имя актеры .Я хочу создать новый фрейм данных, скажем, Джонни Депп с его фильмами в этом фрейме данных из набора дат movies .Также есть колонка жанра с элементами ** Action | Adventure | Fantasy | Sci-Fi **.Я хочу извлечь первые два слова из него, то есть Action, Adventure и сохранить их в двух отдельных столбцах.

words = movies.genres.apply(lambda x: x.str.split('|').str[1])

это код, который я написал для жанра, но получаю ошибку, поскольку объект 'str' не имеет атрибута 'str'

1 Ответ

0 голосов
/ 14 октября 2018

Это работает?

ll = [['Johnny Depp', 'a|b|c', 'Movie_1'],['Johnny Depp', 'a|d', 'Movie_2'],['Marlon Brando', 'f', 'Movie_3']]
movies = pd.DataFrame(ll,columns=['actors','genres','titles'])
print(movies)

# Get it as matrix of 0,1.
genre_df = movies.genres.str.get_dummies()
print(genre_df)

# Bonus: get a column containing list of first 2 genres.
genre_df['first_genre'] = pd.Series([''.join(genre_df.iloc[i,:][genre_df.iloc[i,:] == 1][0:1].index.tolist()) for i in range(len(genre_df))])
genre_df['second_genre'] = pd.Series([''.join(genre_df.iloc[i,:][genre_df.iloc[i,:] == 1][1:2].index.tolist()) for i in range(len(genre_df))])
genre_df['actors'] = movies['actors']
genre_df['titles'] = movies['titles']
print(genre_df)

# Get Depp movie info only.
depp_df = genre_df[genre_df['actors'] == 'Johnny Depp'][['first_genre', 'second_genre', 'titles']]
print(depp_df)

Надеюсь, это в нужном вам формате, я не совсем понял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...