2016-11-16 73 views
1

我有一個列名爲「Actors」的數據框df1。例如:在一行中分隔多個值,導致一行中有一個值

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

正如我們上面看到的,有多行由*分隔的多個角色。此外,在上述案例中,還有少數多餘的演員,例如「Mel Blanc」和「Aki Morita」。

我想創建一個新的數據框架df2,其中每行只有一個actor,並刪除重複的值。所以結果應該是 -

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

如何使用熊貓來執行此任務?

回答

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 
+0

這實際工作。我發現的唯一問題是無論在哪裏找到重複值,它都會在結果中用NaN替換它。我該如何糾正這一點?我只是不想要那個特定的物品。 – ComplexData

+0

試試這個:'df.Actors.str.split('*',expand = True).stack()。reset_index(level = [0,1],drop = 1).drop_duplicates()。dropna()' – MaxU

+0

有用!謝謝 – ComplexData

相關問題