将编号的列添加到csv文件

时间:2018-09-10 10:44:15

标签: python csv multiple-columns

我有一个看起来像这样的csv文件。 data

我想在python中打开此文件,并将第一列中所有0的值更改为1、2、3、4 ....,更改为文件中最后一行的最后一个数字。 如果您能让我知道该怎么做,我将不胜感激。 atm我正在通过此操作将数据写入文件。

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 :(得分:1)

您可以尝试熊猫

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

如果ID列未出现在数据框中所需的位置,则可能必须在保存到csv之前重新排列数据框中的列。

答案 1 :(得分:0)

使用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