如何将Pandas DataFrame中的None值转换为空列表[]
解决方案
你可以用两种简单方法实现需求:
方法1:使用apply直接判断替换
遍历列中每个元素,若为None则返回空列表[],否则保留原元素:
df_final_minimal['newa_cited_docdb'] = df_final_minimal['newa_cited_docdb'].apply(lambda x: [] if x is None else x)
方法2:使用replace批量替换
利用Pandas的replace方法,直接将所有None值映射为空列表:
df_final_minimal['newa_cited_docdb'] = df_final_minimal['newa_cited_docdb'].replace({None: []})
为什么你之前的代码无效?
你用explode()+groupby()的逻辑完全绕远了:explode是把列表类型元素拆分成多行,后续x.all()判断的是分组后Series的所有元素是否为真,和原单元格是否为None没有关系,自然达不到替换效果。
内容的提问来源于stack exchange,提问作者Lusian
相关产品推荐
相关产品推荐

