从一系列列表中删除元素

2024-10-01 00:26:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在网站上寻找解决方案和提示,但找不到与我的案例直接相关的问题。你知道吗

我从不同的网站上搜集了文本数据,并使用str.split('\n')对文本进行了拆分。文本包含大量'\n',以这种方式拆分使其非常理想。(如果这种方法太糟糕,请告诉我。)

df['scrape']
0       \nWebsite:\n\n\n\nVisit\n\n \nWhite paper:\n\n...
1       \nWebsite:\n\n\n\nVisit\n\n \nWhite paper:\n\n...
2       \nWebsite:\n\n\n\nVisit\n\n \nWhite paper:\n\n...
3       \nWebsite:\n\n\n\nVisit\n\n \nWhite paper:\n\n...
4       \nWebsite:\n\n\n\nVisit\n\n \nWhite paper:\n\n...
5       \nWebsite:\n\n\n\nVisit\n\n \nWhite paper:\n\n...

结果是一系列的列表–所有元素都是字符串列表。你知道吗

df['split'] = df['scrape'].str.split('\n')
0       [, Website:, , , , Visit, ,  , White paper:, ,...
1       [, Website:, , , , Visit, ,  , White paper:, ,...
2       [, Website:, , , , Visit, ,  , White paper:, ,...
3       [, Website:, , , , Visit, ,  , White paper:, ,...
4       [, Website:, , , , Visit, ,  , White paper:, ,...
5       [, Website:, , , , Visit, ,  , White paper:, ,...
6       [, Website:, , , , Visit, ,  , White paper:, ,...

我想去掉每个列表上的None元素(“”和“”)。你知道吗

我试着循环:

for i in series:
    While ‘’ in i:
        i.remove(‘’)

上面的代码适用于我所做的一些任意示例,但是对于我的实际数据,它会产生一个错误。你知道吗

for i in df['split']:
...     while '' in i:
...         i.remove('')
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: argument of type 'float' is not iterable

我不知道为什么我的数据会出错。你能得到一些建议吗?谢谢!你知道吗


Tags: 数据in文本df列表网站websitevisit
1条回答
网友
1楼 · 发布于 2024-10-01 00:26:15

你可以使用列表理解:

new_series = [s for s in series if s!='' and s!=' ' and s!=None]

要将列表理解应用于一系列列表(本质上是列表列表)中的每个元素,您需要如下嵌套列表理解:

new_series = [[s for s in element if s!='' and s!=' ' and s!=None] for element in series]

相关问题 更多 >