首页 > 解决方案 > 用字符串python填充空列表元素

问题描述

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

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]

标签: pythonstringpandaslist

解决方案


使用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, ...
  • 注意:如果您的数据由于迭代而非常大,这将很慢。

推荐阅读