【发布时间】:2016-08-20 02:53:27
【问题描述】:
我有csv 文件
ID,"address","used_at","active_seconds","pageviews"
0a1d796327284ebb443f71d85cb37db9,"vk.com",2016-01-29 22:10:52,3804,115
0a1d796327284ebb443f71d85cb37db9,"2gis.ru",2016-01-29 22:48:52,214,24
0a1d796327284ebb443f71d85cb37db9,"yandex.ru",2016-01-29 22:14:30,4,2
0a1d796327284ebb443f71d85cb37db9,"worldoftanks.ru",2016-01-29 22:10:30,41,2
我需要删除包含一些单词的字符串。一共117个字。
我试试
for line in df:
if 'yandex.ru' in line:
df = df.replace(line, '')
但是对于 117 个单词,它的运行速度太慢了,在它之后我创建了 pivot_table,并且我尝试删除的单词包含在列中。
aaa 10ruslake.ru youtube.ru 1tv.ru 24open.ru
0 0025977ab2998580d4559af34cc66a4e 0 0 34 43
1 00c651e018cbcc8fe7aa57492445c7a2 230 0 0 23
2 0120bc30e78ba5582617a9f3d6dfd8ca 12 0 0 0
3 01249e90ed8160ddae82d2190449b773 25 0 13 25
该列仅包含 0
我怎样才能更快地做到这一点并删除行以使单词不在列中?
【问题讨论】:
-
抱歉,您正在遍历您的 df 列,然后测试是否存在一个单词并用空字符串替换?你的话在列表中吗?如果是这样你可以试试
pattern = '|'.join(words)' for col in df: df[col] = df.str.replace(pattern, '', case=False)