如何基于用户输入的多个uuid值过滤Pandas DataFrame数据
Pandas多UUID筛选实现代码
你现有代码无法实现多UUID筛选的核心原因有三点:
- 未对用户输入的多UUID内容做分割处理,所有输入内容会被识别为单个字符串
- 使用
==只能完成单值匹配,多值匹配需要使用Pandas提供的isin()方法 - 错误将变量
n写为固定字符串'n',导致实际匹配的是字符串n而非用户输入内容
以下是可直接运行的修正代码:
# 提示用户输入,要求多个UUID用英文逗号分隔 input_content = input('请输入要筛选的UUID,多个用英文逗号分隔:').strip() # 拆分输入为UUID列表,自动去除每个UUID前后多余空格 target_uuids = [uuid.strip() for uuid in input_content.split(',')] # 多值匹配筛选符合条件的行 products_df1_final = products_df1.loc[products_df1['uuid'].isin(target_uuids)] # 输出指定列结果 display(products_df1_final[['title','uuid','ingestiondate','size']])
可选调整项
- 若用户习惯用空格分隔多个UUID,将代码中
split(',')修改为split()即可 - 若需要兼容UUID大小写输入差异,可将匹配逻辑修改为:
products_df1_final = products_df1.loc[products_df1['uuid'].str.upper().isin([u.upper() for u in target_uuids])]
内容的提问来源于stack exchange,提问作者MJM
相关产品推荐
相关产品推荐

