根据另一列中的元素位置提取某些元素

时间:2018-11-26 13:30:58

标签: python pandas list

我在DataFrame中有两列,crewname是在电影上工作的工作人员的列表。 Director_loc是导演列表中的位置。

我想创建一个新的列,其名称为导演的名字。

    crewname                                           Director_loc

    [John Lasseter, Joss Whedon, Andrew Stanton, J...  0
    [Larry J. Franco, Jonathan Hensleigh, James Ho...  3
    [Howard Deutch, Mark Steven Johnson, Mark Stev...  0
    [Forest Whitaker, Ronald Bass, Ronald Bass, Ez...  0
    [Alan Silvestri, Elliot Davis, Nancy Meyers, N...  5
    [Michael Mann, Michael Mann, Art Linson, Micha...  0
    [Sydney Pollack, Barbara Benedek, Sydney Polla...  0
    [David Loughery, Stephen Sommers, Peter Hewitt...  2
    [Peter Hyams, Karen Elise Baldwin, Gene Quinta...  0
    [Martin Campbell, Ian Fleming, Jeffrey Caine, ...  0

我已经使用列表理解,枚举等方法尝试了许多代码。将它们放在这里有点尴尬。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

结合列表理解使用索引:

df['name'] = [a[b] for a , b in zip(df['crewname'], df['Director_loc'])]
print (df)
                                         crewname  Director_loc  \
0  [John Lasseter,  Joss Whedon,  Andrew Stanton]             2   
1          [Larry J. Franco,  Jonathan Hensleigh]             1   

                  name  
0       Andrew Stanton  
1   Jonathan Hensleigh