【问题标题】:adding numbered column to csv file将编号列添加到 csv 文件
【发布时间】:2018-09-10 10:44:14
【问题描述】:

我有一个看起来像这样的 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)

【问题讨论】:

  • 请在代码标签中包含问题中的示例数据。切勿使用源、json、CSV 等图像。

标签: python csv multiple-columns


【解决方案1】:

你可以试试熊猫

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      • 2018-11-29
      相关资源
      最近更新 更多