在列中拆分名称

2024-04-20 00:02:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python还比较陌生,在电影数据库的pandas&numpy中使用数据帧。其中一列用管道符号(|)分隔每个电影的主要演员阵容。我正试图找到一种方法,将每个演员分成几组,并将其与电影标题一起列在自己的行中。我在下面附上了一段我得到的结果。你知道吗

tmdb_data = pd.read_csv('tmdb-movies.csv')
cast_split = tmdb_data[['original_title', 'cast']]
df = pd.DataFrame(cast_split)
df.head()

Movie Title & Cast

预期输出:

    original_title                 cast
0  Jursassic World           Chris Patt
1  Jursassic World  Bryce Dallas Howard
2  Jursassic World          Irrfan Khan

Tags: csv数据库pandasdfworlddata电影title
2条回答

使用^{}+^{}+^{}+^{}+^{}表示新Series,然后^{}表示原始:


tmdb_data = pd.DataFrame({'movie':['Jursassic World', 'Insurgent'], 
                           'cast':['Chris Patt|Bryce Dallas Howard|Irrfan Khan', 
                                   'Shailene Woodley|Theo James']}, 
                         columns=['movie', 'cast'])


print (tmdb_data)
             movie                                        cast
0  Jursassic World  Chris Patt|Bryce Dallas Howard|Irrfan Khan
1        Insurgent                 Shailene Woodley|Theo James

df1 = (tmdb_data.join(tmdb_data.pop('cast').str.split('|', expand=True)
                               .stack()
                               .reset_index(level=1, drop=True)
                               .rename('cast'))
                               .reset_index(drop=True))

print (df1)

             movie                 cast
0  Jursassic World           Chris Patt
1  Jursassic World  Bryce Dallas Howard
2  Jursassic World          Irrfan Khan
3        Insurgent     Shailene Woodley
4        Insurgent           Theo James

第一个演员名单(请原谅双关语!),然后通过numpy重建数据帧:

import pandas as pd
import numpy as np

df = pd.DataFrame([['Jursassic World', 'Chris Patt|Bryce Dallas Howard']], columns=['movie', 'cast'])

df.cast = df.cast.str.split('|')

df2 = pd.DataFrame({'movie': np.repeat(df.movie.values, df.cast.str.len()),
                    'cast': np.concatenate(df.cast.values)})

#                   cast            movie
# 0           Chris Patt  Jursassic World
# 1  Bryce Dallas Howard  Jursassic World

相关问题 更多 >