如何删除DataFrame中包含空列表的行?
问题:移除DataFrame中
stemming列为空列表的行 现有DataFrame数据如下,需要移除stemming列为空列表([])的行(即索引为2的行):
stemming 0 [go, experience] 1 [real] 2 [] 3 [love, colour, tabs]
当前尝试的代码:
df_new['stemming']=df['stemming'].apply(lambda x : [t for t in x if t != ()]) df_new.loc[df_new['stemming'].apply(len)>0,:]
修正方案
你当前的代码逻辑偏离需求:lambda表达式是在过滤列表内的空元组,但你的目标是移除整个列值为空列表的行,无需修改原列表内容,直接筛选即可。
推荐两种简洁的正确写法:
写法1:通过列表长度判断
df_new = df[df['stemming'].apply(len) > 0]
写法2:直接判断是否为空列表
df_new = df[df['stemming'] != []]
执行后得到的结果符合预期:
stemming 0 [go, experience] 1 [real] 3 [love, colour, tabs]
内容的提问来源于stack exchange,提问作者Dewani
相关产品推荐
相关产品推荐

