Эй, я действительно застрял и очень надеюсь, что кто-нибудь сможет мне с этим помочь. Я пытаюсь прочитать первые 5000 строк файла CSV, разделить строки разделителем табуляции, затем выполнить поиск шаблона регулярного выражения для каждого столбца и строки и вывести номер индекса столбца с наибольшим количеством совпадений / вхождений регулярного выражения. Я приведу пример, который поможет лучше объяснить, что я имею в виду.
test.csv
john smith 1132 Anywhere Lane Hoboken NJ 10.0.0.1 07030 Jan 4
erica meyers 1234 Smith Lane Hoboken NJ 127.0.0.1 07030 March 2
erica meyers 1234 Smith Lane Hoboken NJ 192.168.1.1 07030 april 5
Вот где я сейчас нахожусь (прочтите csv, разделите столбцы по разделителю табуляции, напечатайте первые 100 строк):
import csv
import re
Num = 5000
with open('test.csv', newline='', encoding="cp437", errors='ignore') as csvfile:
reader = csv.reader(csvfile, delimiter='\t')
for i in range(Num):
lines = next(reader)
Первые несколько строк текущего вывода:
['john smith', '1132 Anywhere Lane Hoboken NJ', '10.0.0.1', ' 07030', 'Jan 4']
['john smith', '1234 Smith Lane Hoboken NJ', '127.0.0.1', ' 07030', 'March 2']
['smith john', '1234 Smith Lane Hoboken NJ', '192.168.1.1', ' 07030', 'april 5']
вот где я застрял ...
Я хочу выполнить поиск регулярного выражения \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
по всем столбцам в каждой строке и вывести номер индекса столбца, в котором было наибольшее количество совпадений с регулярным выражением.
для этого примера \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
будет соответствовать
10.0.0.1
127.0.0.1
192.168.1.1
, поэтому желаемый результат будет:
2