как противостоять появлению строки в столбце CSV-файла

#python #csv

#python #csv

Вопрос:

У меня есть файл csv в этом файле, который мне нужен для противодействия появлению строки.

например, это пример файла

 column_A
Abhi
Spidy
Abhi
Max
 

итак, в приведенном выше CSV-файле мне нужно следовать выводам:

 output:
Abhi 2
Spidy 1
Max 1
 

Привет, пробовал с этим

 import csv
import collections

data = collections.Counter()
print(data)
with open('file.csv') as input_file:
    for row in csv.reader(input_file, delimiter=';'):
        data[row[1]]  = 1

print('%s' % data['columnA'])
print(data.most_common())
 

Комментарии:

1. row[0] если вам нужен первый столбец, индексы начинаются с 0 not 1

2. Спасибо, но мне нужно проверить столбец, а не строку

Ответ №1:

Эй, я вижу, ты сделал это с помощью счетчика, я использовал pandas только для чтения CSV-файла:

 dict_final = {}
list_intermed = []
df = pd.read_csv('test.csv')
for i in df.A:
    if i in list_intermed:
        dict_final[i]  = 1
    else:
        dict_final[i] = 1
        list_intermed.append(i)
print(dict_final)
 

Который выдаст выходные данные в виде словаря


Использование только модуля CSV :

 import csv
list1 = []
final_dict = {}
list2 = []
with open('test.csv', newline='') as csvfile:
     csv_obj = csv.reader(csvfile, delimiter=',')
     for row in csv_obj:
        list1.append(', '.join(row).split()) #so we get a list of all rows
for i in list1[1:]: #excluding the first row as those are column names
    if i[0][:-1] in list2: #i[0][:-1] takes the rows first element till the second last character the reason we take second last character is so that we don't include a comma that comes in the list items (rest of the code is same)
        final_dict[i[0][:-1]]  = 1
    else:
        final_dict[i[0][:-1]] = 1
        list2.append(i[0][:-1])
 

Комментарии:

1. Спасибо, Ариан, но что такое if i в l1:

2. О, это опечатка, я изменил имена переменных, чтобы сделать их более понятными, должно быть, оставил это, позвольте мне просто быстро отредактировать

3. у вас есть ответ с помощью модуля csv

4. Конечно, отредактировал мой ответ (я буквально только что просмотрел документацию для модуля csv, так что это может быть не самый лучший код)

5. ты сделал мой день, братан, я не знаю, будет этот код работать или нет, но спасибо за ваши усилия.