Pandas如果列包含字符串,则从另一列获取唯一值,并从数据帧中删除行



我有一个小问题。我有这个有7列的数据框架。其中两个是"IP"one_answers"URL"。

这是一个web日志数据集,所以我试图获得行的唯一IP,其中URL包含字符串";robots.txt";然后如果应用该条件,则从数据帧中删除uniqueIP的行。

我很难解决这个问题。我试过熊猫组,但还是解决不了。我能够获得唯一的ip,其中url包含字符串";robots.txt";在此代码中:

robots = data2[data2.url.str.contains('robots.txt', regex=True)] 
len(robots[['ip']].drop_duplicates())

但在那之后,我不知道如何从数据帧中删除这些行。有人有什么建议吗?谢谢


以下是示例:https://i.stack.imgur.com/t6q39.png


数据帧有大约30k行。所以期望的输出是如果字符串"0",则从数据帧中删除所有行;robots.txt";在url列中。我可以这么做,但诀窍是当列"url"包含特定字符串时,记住列"ip"中的值,并删除通过该特定ip地址访问的行

只需否定条件

robots_condition = data2.url.str.contains('robots.txt')
no_crawl_ips = data2.loc[robots_condition, 'ip'].unique()
data2 = data2[~robots_condition]

最新更新