【问题标题】:populate empty list elements with strings python用字符串python填充空列表元素
【发布时间】:2019-11-24 01:31:45
【问题描述】:

我有一个包含嵌套列表的数据框。其中一些列表是空的,或者只包含空格。例如:

df=pd.DataFrame({'example':[[['  ', ' '],['Peter'],['   ', ' '],['bla','blaaa']]]})

对于我的进一步操作,它们不能为空,也不能被删除。有没有办法用例如填充它们? 'some_string

我想到了类似的东西 df.example = [[[a.replace(' ','some_string')if all a in i =='\s'for a in i]for i in x] for x in df.example],但这会产生无效的语法错误,而且它不仅会填充列表,还会填充列表中的每个空格。 由于我还在学习python,我对解决方案的想法可能太复杂或完全错误。

即解决方案应如下所示:

     example
0   [[some_string], [Peter], [some_string], [bla, blaaa]

【问题讨论】:

    标签: python string pandas list


    【解决方案1】:

    使用apply

    例如:

    df=pd.DataFrame({'example':[[['  ', ' '],['Peter'],['   ', ' '],['bla','blaaa']]]})
    df["example"] = df["example"].apply(lambda x: [i if "".join(i).strip() else ['some_string'] for i in x])
    print(df)
    

    输出:

                                                 example
    0  [[some_string], [Peter], [some_string], [bla, ...
    
    • 注意:如果您的数据由于迭代而非常大,这会很慢。

    【讨论】:

    • df.example = [[i if ''.join(i).strip() else ['some_string'] for i in x] for x in df.example]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 2013-09-16
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多