Python中如何从DataFrame指定列的取值中删除特定数据
解决方法
直接对ID列做逐行自定义处理即可,不需要先执行explode操作,核心逻辑是嵌套遍历筛选带b的元素,示例代码如下:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'ID': [[['a1'], ['b1']], [['a2'],['a5'],['b2']], [['a3'],['a6'],['b3']], [['a4'], ['b4']]], 'occ': [3,1,6,2] }) # 处理ID列:展平嵌套列表+筛选含b的元素,每行仅1个符合条件元素直接取第一个值 df['ID'] = df['ID'].apply(lambda x: [i for sublist in x for i in sublist if 'b' in i][0]) print(df)
运行后输出结果和预期完全一致:
ID occ 0 b1 3 1 b2 1 2 b3 6 3 b4 2
补充说明
如果实际场景中某行可能存在多个含b的元素,可以调整处理逻辑保留列表格式,或者根据需求做字符串拼接、二次explode等操作即可。
内容的提问来源于stack exchange,提问作者Anubhav
相关产品推荐
相关产品推荐

