从熊猫列中的列表中删除元素

时间:2020-04-19 17:47:30

标签: python pandas list dataframe

我有一个数据框,其中一列在一个列表中有元素,还有一个非列表中的单个元素,例如一个波纹管:

             Country                                              Roles  \
0  Shell Record  [DSC Payroll Administrator Reporting, DSC HR S...   
1            PL  [DSC Payroll Administrator Reporting, DSC Payr...   
2            ES  [DSC HR Business Partner Reporting, DSC HR Bus...   
3  Shell Record  [DSC HR Business Partner Reporting, DSC HR Bus...   
4  Shell Record                     DSC BPM Worklist Administrator   

          Role vs Family  
0           Do not match  
1  [Match, Do not match]  
2                  Match  
3           Do not match  
4           Do not match  

有没有一种方法可以删除列表中的所有元素,使它们不再位于列表中,而是位于同一单元格中?例如,“角色与工作族”列中的第二行不是"[Match, Do not match]",而是"Match, Do not match"

1 个答案:

答案 0 :(得分:0)

这里有一种方法:

df['Role vs Family'].apply(lambda x: str(x).split('[')[-1].split(']')[0])

它将值强制转换为字符串,然后在'['']'上进行分割,每次都有效地去除括号。如果它不存在,则因为它不是开头,所以不会造成任何危害。

请注意,这假设您的所有字符串值中都没有方括号...