在Python中删除具有特定条件的行

2024-09-24 04:25:09 发布

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

我正在使用Python的Twitter搜索API对Twitter消息的某个关键字进行研究。在

现在我有了一个很大的CSV文件,包含包含这个关键字的消息,但是用户名中也有关键字。所以这些消息不是关于关键字的,关键字正好在用户名中。在

示例:

  • 我的csv中的正确行: @Koningsbruggen在推特上写道:@CGCommunicatie你们在“关键字”里吗?

  • 我的csv中有一行不正确: @“KEYWORD”_lady在推特上写道:@rvanbommel是的,没关系

如何使用Python代码删除后一行? 我得到了一个包含120K行的csv,所以自动删除这些不正确的行会很好。在


Tags: 文件csv代码api消息示例twitter关键字
2条回答

如果您将您的tweets加载到pandas数据框中,则可以非常轻松快速地对其进行过滤:

In [11]:

df = pd.DataFrame({'tweet':['@Koningsbruggen tweeted: @CGCommunicatie are you guys in "KEYWORD"?', '@"KEYWORD"_lady tweeted: @rvanbommel yes thats okay']})
df
Out[11]:
                                               tweet
0  @Koningsbruggen tweeted: @CGCommunicatie are y...
1  @"KEYWORD"_lady tweeted: @rvanbommel yes thats...

我们可以调用向量化的^{}方法来split该tweet,并使用contains过滤它们:

^{pr2}$

有很多方法可以将数据加载到panda中:http://pandas.pydata.org/pandas-docs/stable/io.html

如果您的输入文件是逐行列出的消息:

ATamsterdam_lady tweeted: ATrvanbommel ja dikke vlokken
ATKoningsbruggen tweeted: ATCGCommunicatie zitten jullie in Amsterdam?
ATJustoRasta tweeted: febovers ... AT Leidseplein - Amsterdam Centrum t.co/KCUCzj2dWq
AT7Ash_bash tweeted: #HENNY AND AMSTERDAM TONIGHT

然后可以使用以下Python代码:

^{pr2}$

生成的输出文件包含逐行文本,仅在“消息”部分包含“Amsterdam”:

ATKoningsbruggen tweeted: ATCGCommunicatie zitten jullie in Amsterdam?
ATJustoRasta tweeted: febovers ... AT Leidseplein - Amsterdam Centrum t.co/KCUCzj2dWq
AT7Ash_bash tweeted: #HENNY AND AMSTERDAM TONIGHT

相关问题 更多 >