【问题标题】:How to convert empty lists in a DataFrame to NaN?如何将 DataFrame 中的空列表转换为 NaN?
【发布时间】:2020-09-03 17:01:24
【问题描述】:

我得到以下数据框:

我合并了两个不同的列表。 Standstillreason 的单元格可能有包含内容的列表,或者可能已经是“NaN”。我的目标是将空列表(如上图)也转换为“NaN”。 我是初学者,我知道 .replace 方法。但它似乎不起作用?

df.Standstillreason = df.Standstillreason.replace("", np.nan, inplace=True)

我尝试将"" 替换为[]、" "、"[]" 和"[ ]"。但是这些代码所做的只是用None 替换整个列,甚至是非空单元格。 我能做些什么,只将那些具有空列表的单元格转换为NaN?

【问题讨论】:

    标签: python pandas numpy dataframe nan


    【解决方案1】:

    让我们试试bool

    df.loc[~df.Standstillreason.astype(bool),'Standstillreason']=np.nan
    

    详情

    s=pd.Series([[],[1]])
    s
    0     []
    1    [1]
    dtype: object
    s.astype(bool)
    0    False
    1     True
    dtype: bool
    

    【讨论】:

    • 谢谢,效果很好!知道为什么不能用替换方法完成吗?
    • @Rafa replace 不能用列表处理,因为那是对象~
    • 明白。再次感谢!
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2013-02-13
    • 2022-01-07
    • 2018-11-30
    • 2019-06-24
    相关资源
    最近更新 更多