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