Как сравнить строку с предыдущей строкой в файле CSV?Как сравнить строку с предыдущей строкой в CSV?
Мне это нужно для моего, если условие:
if row[0] != row[0][of previous row]:
do something....
Как сравнить строку с предыдущей строкой в файле CSV?Как сравнить строку с предыдущей строкой в CSV?
Мне это нужно для моего, если условие:
if row[0] != row[0][of previous row]:
do something....
панды является отличным инструментом для работы с CSV-х годов. В этом случае, если вы сравниваете целые числа, вы можете использовать diff()
. Когда строки равны, diff()
будет равен 0. Это может быть применено ко всей кадре данных, как в df.diff()
, или к определенной серии (колонке) как df.column_name.diff()
или df['column_name'].diff()
. Вы даже можете взять разницу между столбцами или изменить период, чтобы рассчитать разницу, проверьте документацию here.
Спасибо за информацию, я должен ее проверить :) – MTG
Эта программа делать то, что вы хотите:
import csv
f = open("some.csv", "r+")
ff = csv.reader(f)
pre_line = ff.next()
while(True):
try:
cur_line = ff.next()
if pre_line == cur_line:
pass #replace pass with do_something()
pre_line = cur_line
except:
break
Как вы видите выше, я накинут строк в файле CSV, и проверили каждую строку с предыдущим использованием и итератора. Если они равны, я вызвал метод do_something()
, и если они были не равны, он просто перешел к следующей строке.
what do ff.next()? спасибо за наконечник, который я нахожу в своем уме, как я могу перестроить свой скрипт :) – MTG
@MTG 'ff' действует как список строк в csv. 'ff.next()' возвращает строку каждый раз, когда вы вызываете ее, пока вы не получите последнюю строку. В python мы вызываем ff итерирующей переменной, а next() - итератором. Google «итератор - это python». – EbraHim
нет работа .... это возможно, что это не работает на 3,5? – MTG
Добро пожаловать в SO, пожалуйста, покажите нам код, который вы пробовали, включая ту часть, где вы читаете строки в файле. Если вы еще этого не сделали, я предлагаю вам прочитать https://docs.python.org/2/library/csv.html –
В вашем цикле создайте 'previous = row' в конце цикла. –
Что должно произойти для первой строки файла, у которой нет предыдущей строки? – martineau