Рубрики
Без рубрики

Разборные CSV строки в отдельные текстовые файлы

Неделя одна – 100 дней кодового вызова. Tagged с 100Дамсофкодом, Python, AI, Datascity.

Challenge # 100daysofcode – это инициатива Александра Кэллаэуэааэуэй, предназначена для того, чтобы помочь людям учиться, как кодировать быть более последовательным. Целью этой задачи было кодировать не менее часа каждый день в течение 100 дней.

Удаление этой предпосылки, я решил работать как минимум час каждый день на просто исследование и кодирование для классификации изображений. Сегодня отмечает конец первой недели, в котором я исследовал и работал над проектом Анализируя обезлесение и урбанизацию с использованием Intel AI Technologies Отказ Во время этого проекта я работал с оптимизированным Tensorflow Intel для классификации спутниковых изображений. В этой первой неделе я узнал много интересных вещей о классификации и маркировке изображений. Тот, который я нашел наиболее интересно, чтобы поделиться, будет как разбираться на этикетки из файла CSV и преобразовывать метки в формат, который я хотел.

Для этой проблемы я столкнулся, давайте посмотрим на следующий пример файла CSV. Эта таблица имеет два столбца, первый столбец, являющийся именем изображения, а второй столбец, состоящий из массива меток. Это был дизайн оригинального файла CSV, с которым я работал.

Хейзуе городская ферма Image_001.
город Image_002.
водяная ферма Image_003.

Желаемый формат, который мне нужен для этикеток, заключался в том, чтобы сделать имя изображения и создать текстовый файл на основе этого имени. Для первого ряда файл будет называться Image_001.jpg.txt И содержат все этикетки для этого изображения с каждой этикеткой на отдельной строке. Кодирование в Python 3, я работал над созданием функции, которая преобразует исходные CSV в нужные текстовые файлы. Как можно увидеть ниже, файл Image_001.jpg.txt будет заполнен данными, как так:

haze 
city 
farm

Эта функция создана для того, чтобы сделать это преобразование первым читает в пути данных и имени файла. Путь данных относится к пути, в котором сохраняется исходное CSV, и имя файла относится к имени файла CSV. Эти данные хранятся в DataFrame, которое может затем пересекать для сбора данных. Каждая строка в CSV читается как вариабельная строка. Однажды подряд, первый столбец ряд [0] используется для создания имени нового текстового файла. Затем вторая колонна ряд [1] расщеплен на основе пробелов. Этот список этикеток, называемый SPLITROW, затем переведен, чтобы добавить каждую метку на новую строку текстового файла. После завершения файл закрыт, а новый файл может быть создан для следующего изображения. Это создаст один текстовый файл метки для каждого изображения.

def _parse_labels(self):
df_train_tags = pd.read_csv(self.data_path + self.filename)
i = 0
for index, row in df_train_tags.iterrows():
    if i > len(df_train_tags):
        print("Error: Cannot read images, file length too short...")
        break
    else:
        print("Processing: Reading image " + str(row[0]) + "...")
        f = open(self.labels_path + str(row[0])+'.jpg.txt', 'w')
        splitrow = row[1].split(" ")
        for item in splitrow: 
            f.write(item + "\n")
        f.close()
        i+=1
print("Completed: Finished reading labels dataset...")

Интересная записка, чтобы сделать здесь, что я сначала не осознавал, почему индекс был необходим в цикле для цикла. Придумываясь о цикле для петли, я ссылаюсь на Для каждого элемента в наборе данных затем петли где каждый элемент – ряд данных dataframe. Эта логика имеет смысл, но происходит здесь, ITEERS дает кортежную ценность, а не просто строки. Это означает, что мы должны позвонить (индекс, строку) для кортежа для доступа к столбцам.

После работы в прошлом неделе по исследованиям и кодированию это была одна из самых интересных проблем, с которыми я столкнулся, так как он занимался расщеплением и преобразованием одного единственного столбца в текстовый файл многих строк. Эта функция также помогла дать хороший обзор базовых десен и манипуляций массива в Python.

Какие интересные проблемы вы столкнулись на этой неделе?

Использованная литература:

Обложка изображения, полученное из Альфа-кодеры Intel Оптимизирован Tensorflow Tensorboard Tensorflow Guide Intel devmesh Академия Intel Ai pandas.dataframe.iterrows.

Оригинал: “https://dev.to/rosejcday/parsing-csv-rows-into-separate-text-files–29lk”