通过检查lis创建一个新列

2024-10-06 11:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含4列a、B、C、D和一个列表的数据框,我需要使用B、C、D列和列表创建列,如下面的输出部分所示。你知道吗

hier_List= [[pages2 , book1  , paper3] , [pen1 , rifle2 , ink3] , [words1 ,book2, ink3]]

必须使用上述列表创建列。你知道吗

数据帧:

A      B       C        D      
C_1     1971   book1    nan    
C_1     1971   pages2   pages2  
C_1     1970   book1    nan     
C_1     1972   book1    nan    
C_1     1973   letters4 nan    

输出:

对于每一行,我应该检查C列值是否存在于hier中的任何子列表中_列表.if它是当前标志是或否

 A      B       C        D       is_present_any_list
C_1     1971   book1    nan        yes  
C_1     1971   pages2   pages2     yes 
C_1     1970   book1    nan        yes  
C_1     1972   book1    nan        yes  
C_1     1973   letters4 nan        no   

我不知道怎么做,请帮助我在这个问题上,让我知道如果你需要进一步的澄清。你知道吗


Tags: 数据列表nanlistyesbook1hierbook2
1条回答
网友
1楼 · 发布于 2024-10-06 11:28:00

使用^{}^{}并用^{}展平嵌套列表:

df['is_present_any_list'] = np.where(df['C'].isin(np.concatenate(hier_List)), 'yes', 'no')
print (df)
     A     B         C       D is_present_any_list
0  C_1  1971     book1     NaN                 yes
1  C_1  1971    pages2  pages2                 yes
2  C_1  1970     book1     NaN                 yes
3  C_1  1972     book1     NaN                 yes
4  C_1  1973  letters4     NaN                  no

相关问题 更多 >