Удалить первую строку csv python

удаление ненужных столбцов и строк в CSV-файле и сохранение с использованием Python

Я хочу удалить ненужные столбцы (2-й столбец) и бесполезные строки (первые три и последние три строки) и создать новый CSV-файл, а затем сохранить этот новый. и Как я могу иметь дело с файлом CSV, который имеет более 10 бесполезных столбцов и бесполезных строк?

(при условии, что бесполезные ряды расположены только сверху или снизу, а не в середине)

(и я также предполагаю, что все строки, которые мы хотим использовать, имеют имя первого элемента, начинающееся с ‘a_’)

Могу ли я получить решение без использования numpy или панд? Благодарность!

3 ответа

Предполагая, что у вас есть один или несколько нежелательных столбцов, а искомые строки начинаются с «a_».

import csv with open('filename.csv') as infile: reader = csv.reader(infile) header = next(reader) data = list(reader) useless = set(['uless_col', 'n_con']) # Let's say there are 2 useless columns mask, new_header = zip(*[(i,name) for i,name in enumerate(header) if name not in useless]) #(0,2) - column mask #('out_gate', 'in_gate') - new column headers new_data = [[row[i] for i in mask] for row in data] # Remove unwanted columns new_data = [row for row in new_data if row[0].startswith("a_")] # Remove unwanted rows with open('filename.csv', 'w') as outfile: writer = csv.writer(outfile) writer.writerow(new_header) writer.writerows(new_data) 

Вы можете попробовать это:

import csv data = list(csv.reader(open('filename.csv'))) header = [data[0][0]]+data[0][2:] final_data = [[i[0]]+i[2:] for i in data[1:]][3:-3] with open('filename.csv', 'w') as f: write = csv.writer(f) write.writerows([header]+final_data) 
out_gate,in_gate,n_con a,b,1 a,b,3 b,a,2 b,c,4 c,a,5 c,b,5 c,b,3 c,a,4 d,c,2 d,c,3 d,b,2 

Ниже решение использует панд.

Читайте также:  Python что такое slots

Как подсказывает функция удаления панд данных, Вы можете сделать следующее:

import pandas as pd df = pd.read_csv("csv_name.csv") df.drop(columns=['ulesscol']) 

Выше код рассматривает удаление столбцов, вы можете удалить строки по индексу как:

Кроме того, не читайте в столбце в первую очередь:

df = pd.read_csv("csv_name.csv", usecols=["out_gate", "in_gate", "n_con"]) 

Источник

Удаление первой строки файла CSV

Как бы я удалил первую строку файла CSV в python, первые несколько строк моего файла CSV:

Domain Name, ItemID, Auction Type, Time Left, Price, Bids, Domain Age, Traffic,ValuationPrice TICKETFINE.COM,134774365,Bid,05/09/2014 08:00 AM (PDT),$100,0,0,0,$0 CREATINGMY.COM,134774390,Bid,05/09/2014 08:00 AM (PDT),$500,0,0,0,$0 WPTHEMEHELP.COM,134774444,Bid,05/09/2014 08:00 AM (PDT),$45,1,0,0,$0 APK-ZIPPY.COM,134774445,Bid,05/09/2014 08:00 AM (PDT),$10,0,0,0,$0 FAMILYBUZZMARKETING.COM,134689583,Bid,05/09/2014 08:00 AM (PDT),$90,0,0,0,$0 AMISRAGAS.COM,134689584,Bid,05/09/2014 08:00 AM (PDT),$35,0,0,0,$0 

5 ответов

with open("test.csv",'r') as f: with open("updated_test.csv",'w') as f1: f.next() # skip header line for line in f: f1.write(line) 

Для кого-то еще подхватил эту ошибку:

AttributeError: '_io.TextIOWrapper' object has no attribute 'next' python 

В Python3 объект текстового файла не имеет next() функция. Так что вы не можете позвонить f.next() ,

Вместо этого вы должны использовать f.readline() как указано в этом ответе.

Или вы можете использовать встроенный next(f) который @vrjr упоминается в комментарии, и показан в этом ответе.

Это то, что я делаю, когда хочу пропустить чтение первой строки CSV.

Все, что нужно сделать, это позвонить next() функция объекта CSV, в данном случае — read , а затем указатель на читателя будет на следующей строке.

import csv try: read = csv.reader(f) read.next() # Skip the first 'title' row. for r in read: # Do something finally: # Close files and exit cleanly f.close() 

Надеюсь, это довольно просто для ваших целей!

Источник

Удаление столбцов и строчек в csv

Здравствуйте!
Подскажите пожалуйста как удалить первые три столбца и определенные строки, разделенные запятыми, в csv файле?
Названия столбцы не имеют.

Удаление строчек и столбцов матрицы заполненных только отрицательными элементами
Здравствуйте! Помогите пожалуйста заставить программу работать правильно! Задание: удалять со.

Размножить .csv файл с заменой 2 строчек
Камрады! Имеется .csv вот такой структуры LOT 22137D4UQV OPERATION T32-TEST-1-AMB 10 0.

Вывести номера строчек и столбцов
1. Дана квадратная целочисленная матрица С. Если в ней есть строки, со-стоящие из нулей, то.

Удаление строчек
Будьте добры, помогите новичку! Надо написать макрос, чтобы не листе удалялись строчки, в которыхь.

Читаешь файл, каждую строку перегоняешь в массив (через split или csv reader), берешь от этих массивов слайсы ([3:]), записываешь в файл (‘,’.join(row))

alex white, а можно пример кода.

Добавлено через 30 минут

with open('file.csv') as csvfile: csvv = csv.reader(csvfile, delimiter=',', quotechar='"') for row in csvv: print(','.join(row[3:]).split(")

Эксперт С++

ЦитатаСообщение от New Life Посмотреть сообщение

Здравствуйте!
Подскажите пожалуйста как удалить первые три столбца и определенные строки, разделенные запятыми, в csv файле?
Названия столбцы не имеют.

Создаешь новый файл, читаешь старый и из него копируешь в новый то что интересует. Когда все завершил закрываешь файлы, удаляешь старый, переименовываешь новый.

Avazart, да, это все очевидно, вопрос был в другом.

Добавлено через 19 часов 41 минуту
alex white, как теперь удалить лишние строки в csv файле?

если данные в формате
_запятая_табуляция_значение_запятая

то выбираете первые три и удаляете, по строчно
пишите в НОВЫЙ файл

если данные в формате
_запятая_пробел_значение_запятая

то это сложнее =) так как в данных (если) встречаются фразы, могут возникать сложности и лучше разделитель делать запятую

Эксперт С++

Эксперт Python

ЦитатаСообщение от New Life Посмотреть сообщение

Ну реально — все ж уже рассказали.

with open("test2.csv",newline='') as source,open("test22.csv", "w", newline='') as dest: reader = csv.reader(source, delimiter=';') writer = csv.writer(dest,delimiter=';') #for _ in range(3): next(reader) # так можно пропускать строки с начала файла в нужном количестве skip_lines = [1,4,6] # пропускаем выборочно: 1 4 и 6 строку for line,row in enumerate(reader,1): if line in skip_lines: continue writer.writerow(row[3:]) # пропускаем первые три столбца каждой строки

http://python.su/forum/topic/33192/?page=3 http://python.su/forum/topic/3. ost-181554 и ниже разбирали экспорт товаров из 1С из убитой вирусом базы
там ребята помогли собрать все в csv а затем обработать csv

примерно то же самое =) и у вас

Как сделать нумерацию столбцов и строчек в шахматной доске?
Вот код: import tkinter as tk number_of_rows = number_of_columns = int(input("Введите.

Удаление строчек из модели
Представим ситуацию — есть 10 предметов. Список этих предметов хранится в БД. Моя задача в том.

Удаление строчек с реестра
доброго времени суток. подскажите плз, как удалить определенное значене try

Найти наименьший элемент в каждой строчке таблицы, 10 строчек, 20 столбцов
Помогите найти наименьший элемент в каждой строчке таблицы, 10 строчек, 20 столбцов

Удаление ненужных строчек из файла
Создал такую програму, она должна удалять коментари из кода с++ который записаный в файле.

Источник

Удаление первой строки файла CSV

Как удалить первую строку CSV-файла в python, первые несколько строк моего CSV-файла:

Domain Name, ItemID, Auction Type, Time Left, Price, Bids, Domain Age, Traffic,ValuationPrice TICKETFINE.COM,134774365,Bid,05/09/2014 08:00 AM (PDT),$100,0,0,0,$0 CREATINGMY.COM,134774390,Bid,05/09/2014 08:00 AM (PDT),$500,0,0,0,$0 WPTHEMEHELP.COM,134774444,Bid,05/09/2014 08:00 AM (PDT),$45,1,0,0,$0 APK-ZIPPY.COM,134774445,Bid,05/09/2014 08:00 AM (PDT),$10,0,0,0,$0 FAMILYBUZZMARKETING.COM,134689583,Bid,05/09/2014 08:00 AM (PDT),$90,0,0,0,$0 AMISRAGAS.COM,134689584,Bid,05/09/2014 08:00 AM (PDT),$35,0,0,0,$0 
with open("test.csv",'r') as f: with open("updated_test.csv",'w') as f1: f.next() # skip header line for line in f: f1.write(line) 

Это то, что я делаю, когда хочу пропустить чтение первой строки CSV.

Все, что нужно сделать, это вызвать функцию next() объекта CSV, в этом случае – read , а затем указатель на читатель будет на следующей строке.

import csv try: read = csv.reader(f) read.next() # Skip the first 'title' row. for r in read: # Do something finally: # Close files and exit cleanly f.close() 

Надеюсь, что это довольно чисто для ваших целей!

Для кого-то еще эта ошибка:

AttributeError: '_io.TextIOWrapper' object has no attribute 'next' python 

В Python3 объект текстового файла не имеет функции next() . Поэтому вы не можете вызвать f.next() .

Вместо этого вы должны использовать f.readline() как указано в этом ответе .

Или вы можете использовать встроенный next(f) который @vrjr указан в комментарии, и показан в этом ответе .

Вы открываете его и повторно сохраняете его с тем же именем?

В противном случае вы можете прочитать его без чтения в первой строке и записи в новый файл без этой строки.

  • Прочитайте файл по очереди
  • Напишите каждую строку в новый файл, опустив первый
  • замените первый файл вторым
  • Python «for in» цикл для печати последнего элемента в списке
  • как обнаружить капли и обрезать их в png-файлы?
  • TypeError: ‘str’ не поддерживает интерфейс буфера
  • Проблемы с преобразованием строки из строки в int python
  • Список переменных внутри строки
  • если в пользовательском вводе есть str (‘a’) или str (‘b’) или str (‘c’), тогда сделайте somthing
  • Какова максимальная длина строки python?
  • Отображение форматирования Sig fig с переменными сиг-фигами
  • Ошибка строки Python
  • Соответствие ввода и вывода на языке Python
  • эффективно проверяя, что строка состоит из одного символа в Python

Источник

Оцените статью