добавление пронумерованного столбца в CSV-файл - PullRequest
0 голосов
/ 10 сентября 2018

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

Я бы хотел в python открыть этот файл и изменить значения всех 0 в первом столбце на 1, 2, 3, 4 .... до последнего номера последней строки в файле. если бы вы могли дать мне знать, как это сделать, я был бы очень признателен. атм Я записываю данные в файл, делая это.

def save_train_data_7_days(filename, df1):

FIELDNAMES = [
    'id',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    'host',
    'type'
    ]

if not os.path.exists(filename):
    with open(filename, 'w') as fp:
        writer = csv.DictWriter(fp, fieldnames=FIELDNAMES)
        writer.writeheader()

else:
    with open(filename, 'a') as fp:
        df1.to_csv(fp, header=False)

def format_train_data(filename, df1):
    with open(filename, )



for i, j in enumerate(range(1, 230)):
    df1 = df.iloc[:,i+1:i+8]
    print(df1)

    save_train_data_7_days("training_data.csv", df1)

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Вы можете попробовать с pandas

import pandas as pd
df = pd.read_csv(filepath)
df['id']=df.index
df.to_csv(filepath)

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

0 голосов
/ 10 сентября 2018

Использование DictWriter / DictReader - хорошая идея! Вы должны сделать что-то вроде:

writer = csv.DictWriter(fp_to_write)
reader = csv.DictReader(fp_to_read)
index = 0
for row in reader:
    row['id'] = index
    writer.write(row)
    index += 1
...