在一行中分隔多个值,从而在一行中生成一个值

时间:2016-11-16 17:56:51

标签: python pandas dataframe

我有一个数据框df1,列名为“Actors”。例如:

Actors
Mel Blanc*Arthur Q. Bryan
Kimberly J. Brown*Daniel Roebuck
Kazunari Aizawa*Aki Morita*Teruhiko Nobukuni
Mel Blanc
Aki Morita

正如我们上面所看到的,有些行由多个actor分隔*。此外,在上述情况下,例如“Mel Blanc”和“Aki Morita”的冗余演员也很少。

我想创建一个新的数据框df2,每行只有一个actor,并删除重复的值。所以结果应该是 -

Actors
Mel Blanc
Arthur Q. Bryan
Kimberly J. Brown
Daniel Roebuck
Kazunari Aizawa
Aki Morita
Teruhiko Nobukuni

如何使用pandas执行此任务?

1 个答案:

答案 0 :(得分:2)

试试这个:

In [76]: df.Actors.str.split('*', expand=True).stack().reset_index(level=[0,1], drop=1).drop_duplicates()
Out[76]:
0            Mel Blanc
1      Arthur Q. Bryan
2    Kimberly J. Brown
3       Daniel Roebuck
4      Kazunari Aizawa
5           Aki Morita
6    Teruhiko Nobukuni
dtype: object