A B C
0 125 ADB [AF:12]
1 189 ACB [AF:78, AF:85, AF:98]
2 148 ADB []
3 789 ARF [AF:89, AF:85, AF:12]
4 789 BCD [AF:76, AF:25]
如何查看“C”列中的某些项目是否在列表中?
我知道当我输入(df.C)时,我会上课’pandas.core.series.Series’
例如,如果列表是:
['AF:12', 'AF25']
预期的产出是:
A B C D
0 125 ADB [AF:12] True
1 189 ACB [AF:78, AF:85, AF:98] False
2 148 ADB [] False
3 789 ARF [AF:89, AF:85, AF:12] True
4 789 BCD [AF:76, AF:25] True
我试过df [‘D’] = df [‘C’].isin(list)
但到处都是假,因为“C”是一个列表清单.
有没有办法解决这个问题?
任何帮助将不胜感激
解决方法:
data = {'B':['ADB','ACB','ADB','ARF','BCD'],
'A':[125,189,148,789,789],
'C':[['AF:12'],['AF:78', 'AF:85', 'AF:98'],[],
['AF:89', 'AF:85', 'AF:12'],['AF:76', 'AF:25']]}
df = pd.DataFrame(data)
def in_list(list_to_search,terms_to_search):
results = [item for item in list_to_search if item in terms_to_search]
if len(results) > 0:
return 'True'
else:
return 'False'
df['D'] = df['C'].apply(lambda x: in_list(x, ['AF:12', 'AF:25']))
结果:
A B C D
0 125 ADB [AF:12] True
1 189 ACB [AF:78, AF:85, AF:98] False
2 148 ADB [] False
3 789 ARF [AF:89, AF:85, AF:12] True
4 789 BCD [AF:76, AF:25] True
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。