python - 拆分列中的名称

标签 python pandas numpy

我对 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()

Movie Title & Cast

预期输出:

    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/

相关文章:

python - 在python中比较两个字典的时间复杂度是多少

python - Pandas DataFrame 使用另一列更新一列

python - 将 groupby 选定的列作为字典移动到新的 pandas 列中

python - IF ELSE 使用 Numpy 和 Pandas

python - 使用 numpy append 或 array append 的区别 - Python

python - 如何将训练后的 SVM 输出保存到文件中? (OpenCV/SimpleCV)

python - 使用 python pyad 访问对象 [<COMObject GetEx>] 时出现问题

javascript - Selenium 单击可以工作,但无法获取下一个窗口上的元素

python - 有效替换应用于 numpy 数组的 vstack + concatenate

numpy - scipy 和 numpy svd 或 eig 总是返回相同的奇异/本征向量吗?