Форум сайта python.su
Какой же интересный пайтон…
Вообщем
def take_head_of_file_four(): with open('D:\\out\\cars.csv', 'r', newline='') as csvifile: reader = csv.DictReader(csvifile) headers = reader.fieldnames counter = 1 for h in headers: print(1)
Офлайн
Голову сломал почему-то
def take_head_of_file_four(): with open('D:\\out\\cars.csv', 'r', newline='') as csvifile: reader = csv.DictReader(csvifile) headers = reader.fieldnames counter = 1 print(type(headers)) list = [1, 3, 5, 7, 9] print(type(list)) # Using for loop for i in list: counter+=1 print(i + counter) for i in headers: counter+=1 print(i + str(counter))
<class 'list'> <class 'list'> 3 6 9 12 15 Car,MPG,Cylinders,Displacement,Horsepower,Weight,Acceleration,Model,Origin7
Отредактировано Antonpython (Март 9, 2021 15:22:49)
Офлайн
Почему у меня цифра не клеится к каждому значению заголовка…
Офлайн
def take_head_of_file_four(): with open('D:\\out\\cars.csv', 'r', newline='') as csvifile: reader = csv.DictReader(csvifile) headers = reader.fieldnames counter = 1 elements = str(headers).split(",") print(type(headers)) list = [1, 3, 5, 7, 9] print(type(list)) # Using for loop for i in list: counter+=1 print(i + counter) for i in headers: print(i + "xxx") for i in elements: counter+=1 print(i + str(counter))
<class 'list'> <class 'list'> 3 6 9 12 15 Car,MPG,Cylinders,Displacement,Horsepower,Weight,Acceleration,Model,Originxxx ['Car7 MPG8 Cylinders9 Displacement10 Horsepower11 Weight12 Acceleration13 Model14 Origin']15
Офлайн
Antonpython вы бы для начала посмотрели что у вас в headers попадает, а потом уже всякую дичь пробовали.
[code python][/code]
Отредактировано PEHDOM (Март 9, 2021 15:52:19)
Офлайн
Есть еще одна полезная фича, народ пытается при помощи csv ридера читать не CSV файлы.
С чего вы взяли что он CSV формата?
Вы бы файл прислали да и сами посмотрели что там за разделители что за переводы строк и т п…
Офлайн
Ну, у меня он цсв формат. Поверьте.
https://perso.telecom-paristech.fr/eagan/class/igr204/datasets
Менял ; на ,
Я сейчас пробую в spyder писать код. Без отладчика - вообще не могу. Принт приходится писать.
Что посоветуете, чтобы иметь отладчик?
Офлайн
не понятно что тебе нужно
import csv cars = [] with open('cars.csv') as csv_file: reader = csv.reader(csv_file, delimiter=';') for row in reader: cars.append(row) for i in range(5): print(cars[i]) print('==============================') print(cars[0][0], cars[0][1]) print('==============================') print(f'{cars[2][0]}|{cars[2][2]}|{cars[2][8]}')
['Car', 'MPG', 'Cylinders', 'Displacement', 'Horsepower', 'Weight', 'Acceleration', 'Model', 'Origin'] ['STRING', 'DOUBLE', 'INT', 'DOUBLE', 'DOUBLE', 'DOUBLE', 'DOUBLE', 'INT', 'CAT'] ['Chevrolet Chevelle Malibu', '18.0', '8', '307.0', '130.0', '3504.', '12.0', '70', 'US'] ['Buick Skylark 320', '15.0', '8', '350.0', '165.0', '3693.', '11.5', '70', 'US'] ['Plymouth Satellite', '18.0', '8', '318.0', '150.0', '3436.', '11.0', '70', 'US'] ============================== Car MPG ============================== Chevrolet Chevelle Malibu|8|US Process finished with exit code 0
Офлайн
ну, просто берем исходный файл
берем первую колонку до запятой
парсим
создаем новый файл
пишем хидеры айди и название n-ой колонки
пишем в него уникальные значения первой колонки, сортируем по возрастанию
слева нумеруем по возрастанию
берем колонку после второй запятой
делаем тоже самое
на выходе несколько файлов из уникальных значений
сколько колонок в исходнике - столько и файлов в результате
файлы называются именами колонок, которые парсим
Офлайн
import csv # берем исходный файл,преобразовываем в нужный тип данных def get_list_from_csv(file): values = [] with open(file) as csv_file: reader = csv.reader(csv_file, delimiter=';') for row in reader: values.append(row) return values # получаем значения из колонки def get_column(table:list, column:int): value_from_column = [] for row in table: value_from_column.append(row[column]) return value_from_column # получаем уникальные значения def get_unique_value(value_list): temp = set(value_list) return list(temp) # устанавливаем id def set_id_for_value(value_list): temp = enumerate(value_list) return list(temp) cars_list = get_list_from_csv('cars.csv') cars = get_column(cars_list, 0) unique_cars= get_unique_value(cars[2:]) cars_with_id = set_id_for_value(unique_cars) for i in range(10): print(cars_with_id[i]) print('=======================') cars_sort = sorted(cars_with_id, key=lambda v: v[1]) for i in range(10): print(cars_sort[i])
(0, 'AMC Matador') (1, 'Cadillac Eldorado') (2, 'Audi 5000') (3, 'Oldsmobile Cutlass Supreme') (4, 'Dodge Diplomat') (5, 'AMC Concord DL 6') (6, 'Plymouth Fury Gran Sedan') (7, 'Toyota Corolla Tercel') (8, 'Saab 900s') (9, 'Chrysler Lebaron Town @ Country (sw)') ======================= (180, 'AMC Ambassador Brougham') (282, 'AMC Ambassador DPL') (249, 'AMC Ambassador SST') (158, 'AMC Concord') (132, 'AMC Concord DL') (5, 'AMC Concord DL 6') (287, 'AMC Concord d/l') (196, 'AMC Gremlin') (175, 'AMC Hornet') (77, 'AMC Hornet Sportabout (sw)')
Офлайн