首页 > 解决方案 > 如何将随机值添加到 csv 文件的列中?

问题描述

我想使用 python 在预填充的 csv 文件中附加一列,其中包含 300 万行。然后,我想用 (1, 50) 范围内的随机值填充该列。像这样的东西:

输入csv文件,

意识旅行量

25 1 30

30 2 35

输出csv文件,

认知行程量大小

25 1 30 49

30 2 35 20

我怎样才能做到这一点?我写的代码如下:

使用 open('2019-01-1.csv', 'r') 作为 CSVIN:使用 open('2019-01-2.csv', 'w') 作为

CSV 输出:

CSVWrite = csv.writer(CSVOUT, lineterminator='\n') CSVRead =

csv.reader(CSVIN)

CSVWrite = csv.writer(CSVOUT, lineterminator='\n')

    CSVRead = csv.reader(CSVIN)

    NewDict = []

    row = next(CSVRead)

    row.append('Size')

    NewDict.append(row)

    print(NewDict.append(row))

    for row in CSVRead:

        randSize = np.random.randint(1, 50)

        row.append(row[0])

        NewDict.append(row)

    CSVWrite.writerows(NewDict) 

标签: pythoncsv

解决方案


看看这个答案:Python Add string to each line in a file

我发现使用with文件比导入 csv 或其他特殊文件类型库更容易,除非我的用例非常具体。
所以在你的情况下,它会是这样的:

input_file_name = "2019-01-1.csv"
output_file_name = "2019-01-2.csv"
with open(input_file_name, 'r') as f:
    file_lines = [''.join([x, ",Size,{}".format(random.randint(1, 50)), '\n']) for x in f.readlines()]

with open(output_file_name, 'w') as f:
    f.writelines(file_lines) 

推荐阅读