我对 python 相当陌生,并且使用电影数据库中的 pandas 和 numpy 中的 DataFrame。其中一列标注了每部电影的主要 Actor ,并用管道符号 (|) 分隔。我正在尝试找到一种方法来分割每个 Actor 并将其与电影标题一起列在自己的行中。我在下面附上了我得到的结果的片段。
tmdb_data = pd.read_csv('tmdb-movies.csv')
cast_split = tmdb_data[['original_title', 'cast']]
df = pd.DataFrame(cast_split)
df.head()
预期输出:
original_title cast
0 Jursassic World Chris Patt
1 Jursassic World Bryce Dallas Howard
2 Jursassic World Irrfan Khan
最佳答案
使用pop
+ split
+ stack
+ rename
+ reset_index
对于新的系列
,然后 join
原文:
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
关于python - 拆分列中的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516265/