首页 > 解决方案 > 向旧的 csv 文件添加新行

问题描述

我想在我的 csv 文件的两列中添加数百个新行,如下所示(使用 Sublime Text):

4564,"2,82402927004573E-05"
4565,"3,43440547204476E-05"
4566,"4,04519168926086E-05"
4567,"4,65639435774783E-05"
4568,"5,26796365520546E-05"
4569,"5,87994985608482E-05"
4570,"6,49231317058272E-05"

我想添加这样的行:

4564,"2,82402927004573E-05"
4565,"3,43440547204476E-05"
4566,"4,04519168926086E-05"
4567,"4,65639435774783E-05"
4568,"5,26796365520546E-05"
4569,"5,87994985608482E-05"
4570,"6,49231317058272E-05"
4571,"0"
4572,"0"
4573,"0"
etc...

我试过这段代码:

from csv import reader
import numpy as np
import csv
from mpdaf.obj import Spectrum, WaveCoord

wave = range(7308, 9349, 1)
with open('transmission_curve_HST_ACS_HRC.F606W.csv', 'a') as f:
     writer = csv.writer(f)
     writer.writerow(wave)

但正如我所见,它wave在最后一行添加了所有数据,但我想在第一列中将其作为每行一个数据添加。

知道怎么做吗?

谢谢

标签: pythoncsv

解决方案


您可以使用pandas来实现您的目标:

df = pd.read_csv('transmission_curve_HST_ACS_HRC.F606W.csv', header=None)
wave = pd.DataFrame(list(range(7308, 9349, 1)))
wave[1] = '0'
df = df.append(wave, ignore_index=True)
df.to_csv('transmission_curve_HST_ACS_HRC.F606W.csv', header=False, index=False)

推荐阅读