我有一个数据框,其中一列在一个列表中有元素,还有一个非列表中的单个元素,例如一个波纹管:
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"
。
答案 0 :(得分:0)
这里有一种方法:
df['Role vs Family'].apply(lambda x: str(x).split('[')[-1].split(']')[0])
它将值强制转换为字符串,然后在'['
和']'
上进行分割,每次都有效地去除括号。如果它不存在,则因为它不是开头,所以不会造成任何危害。
请注意,这假设您的所有字符串值中都没有方括号...