Мне нужно создать новый столбец в CSV-файле, глядя на суффикс элементов в первом столбце («Тема»). В частности, если элемент первого столбца заканчивается на _pol
, тогда мне нужно добавить «politics
» к соответствующей строке в новом столбце; если оно заканчивается на _sport
, тогда я добавляю "sports
"; если оно заканчивается на _econ
, тогда я добавляю "economics
"; и так далее.
Элементы в первом столбце выглядят так:
subject_pol
subj_econ
homework_sport
...
Я хотел бы сравнить конечные элементы с суффиксом в списке:
suffix= ['_pol','_econ','_sport','_maths','_computerscience', 'others']
для присвоения соответствующего поля:
field=['politics', 'economics', 'sports','mathematics','computer science', 'others']
Я написал следующий код, но он не проверяет, заканчивается ли элемент значением из списка выше.
with open('/parsed.csv','r') as csvinput:
with open('/parsed_out.csv', 'w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput)
all = []
row = next(reader)
row.append('Subjects')
all.append(row)
for row in reader:
if [row[0].endswith(i) for i in suffix]:
row.append(fields) #WRONG
writer.writerows(all)
Приведенный выше код просто добавляет новые столбцы в файл (out): я знаю, что что-то не так в for l oop, когда я проверяю суффикс.
Не могли бы вы помочь мне правильно исправить код и объяснить, как проверить значения?
Любая помощь будет принята с благодарностью.