Python如何使用csv文件中的特定单词获取推文数据并将其放入新的csv文件中

时间:2018-05-27 06:46:55

标签: python csv twitter

我在CSV文件中有数据twitter(我使用Python API进行挖掘)。我获得了大约1000行数据。现在我想使用特定的印尼语单词“macet”或“kecelakaan”(英文“traffic”或“accident”)来缩短推文数据,并将匹配的行放入一个新的单独的CSV文件中,就像在Excel中使用{{ 1}}。

示例数据twitter是example1.csv和将在搜索单词" macet"之后创建的新文件。或" kecelakaan"是example2.csv。但是没有结果。

find all

我将spyder用于环境Python 3.6。

CSV文件已与Spyder位于同一文件夹中。这是我的CSV推特数据的屏幕截图图像

myCSVtwitterData

已更新:Sample of csv file。操作系统使用:Windows

3 个答案:

答案 0 :(得分:2)

您的代码存在一些问题。

在您的阅读循环中,您将csv.reader对象传递给re.search,但它并不知道如何搜索该对象。您需要传递文本或字节字符串。

该行

myData = list(row)

row转换为新列表并将其保存到myData,但它已经是列表,因此无需转换。该行替换了myData的先前内容,但您实际上想要保存所有匹配的行。但是,没有必要保存行,您可以随时将它们写入新文件。

无论如何,这是修复后的代码版本。从屏幕截图看,您似乎只想搜索输入数据的第2列中的文本(对应于电子表格中的C列)。我创建了一个正则表达式来搜索整个单词" macet" " kecelakaan"," \ b"如果" macet"匹配字边界,那么我们就不会得到匹配。或" kecelakaan"是一个更大词的一部分。

import re
import csv

# Make a case-insensitive regex to match the words "macet" or "kecelakaan"
pattern = re.compile(r'\bmacet\b|\bkecelakaan\b', re.I)

with open('example1.csv', 'r', newline='') as csvFile, open('example2.csv', 'w', newline='') as newFile:
    reader = csv.reader(csvFile)
    writer = csv.writer(newFile)

    for row in reader:
        # Skip empty rows
        if not row:
            continue
        if pattern.search(row[2]):
            print(row)
            writer.writerow(row)

print("Writing complete")

我刚刚对该代码做了一些改进。它现在使用newline='' arg打开CSV文件,它会跳过输入CSV中的任何空行。正在寻找匹配的单词时,正则表达式现在忽略了这种情况。

答案 1 :(得分:0)

没有回答有关Python的问题。但是,如果您有Linux操作系统,则可以在一个命令行中执行此操作:

grep -i "macet" exemple1.csv > exemple2.csv

-i用于忽略大小写,因此它也匹配“Macet”

答案 2 :(得分:0)

怎么回事〜? 此代码逐个访问行 并在word_list中查找包含单词的单元格 并在行上写下值列表

est