2016-09-13 2 views
0

У меня есть файл csv с размерами 100*512, я хочу обработать его дальше в spark. Проблема с файлом в том, что он не содержит заголовок i.e column names. Мне нужны эти имена столбцов для дальнейшего ETL в machine learning. У меня есть имена столбцов в другом файле (текстовый файл). Я должен разместить эти имена столбцов в качестве заголовков в файле csv, упомянутом выше. , например.Добавление заголовка в файл csv

CSV-файл: -

AB-23 SF 23 HJH

вс 6 89 IU 98 ADF

GH-78 р 54 NGJ

JH-22 кДжа 78 JDK

Таблица заголовков файлов: -

один, два, три, четыре, пять, шесть

Я хочу, чтобы на выходе, как это: -

один два три четыре пять шесть

аб-23 С.Ф. 23 HJH

вс 6 89 IU 98 ADF

GH-78 р 54 NGJ

JH-22 78 кДж JDK

Пожалуйста, предложите какой-то метод, чтобы добавить заголовки столбцов в файл CSV. (без замены строки файла CSV. Я попробовал это, преобразовывая его в pandas dataframe, но не могу получить ожидаемый результат.

+1

Просто напишите строку, содержащую заголовки, перед подачей данных csv в файл. Что вы пробовали? –

+0

Что вы подразумеваете под _without заменой строки файла csv? –

ответ

2

Сначала прочитайте файл CSV:

from pandas import read_csv  
df = read_csv('test.csv') 

Если есть два столбца в наборе данных (столбец а и столбец б) использование:

df.columns = ['a', 'b'] 

напишите новый dataframe в CSV

df.to_csv('test_2.csv') 
+0

Отлично !!! Это короткий и сладкий. –

+0

Свое сообщение Нет модуля с именем Writer – venkat

+0

Я думаю, что это как-то связано с пакетом, который вы используете. Код, упомянутый выше, не использует пакет/модуль с именем Writer. Не могли бы вы отправить мне ссылку на свой код? –

1

Unix:

cat header_file.csv data_file.csv > data_file.csv 

Окна:

type header_file.csv data_file.csv > data_file.csv 
+0

Файл заголовка не находится в формате .csv! –

+0

Да, это так. Между каждым элементом заголовка есть запятая. – GreenAsJade

2

вы можете использовать его:

import csv 

    with open('names.csv', 'w') as csvfile: 
     fieldnames = ['first_name', 'last_name'] 
     writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 

     writer.writeheader() 
     writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'}) 
     writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'}) 
     writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'}) 
0

Bit старого путь ...

Содержания демо.CSV до колонок:

4444,Drowsy,bit drowsy 
45888,Blurred see - hazy,little seeing vision 
45933,Excessive upper pain,pain problems 
112397013,air,agony 
76948002,pain,agony 

Содержание xyz.txt:

Col 1,Col 2,Col 3 

код с комментариями рядный

#Open CSV file 
with open("demo.csv", "r+") as f: 
    #Open file which has header 
    with open("xyz.txt",'r') as fh: 
     #Read header 
     header = fh.read() 
     #Read complete data of CSV file 
     old = f.read() 
     #Get cursor to start of file 
     f.seek(0) 
     #Write header and old data to file. 
     f.write(header+ "\n" + old) 

Содержание demo.csv:

Col 1,Col 2,Col 3 
4444,Drowsy,bit drowsy 
45888,Blurred see - hazy,little seeing vision 
45933,Excessive upper pain,pain problems 
112397013,air,agony 
76948002,pain,agony 
Смежные вопросы