[英]Python - How to write data out to a new csv file
Ok, so I'm fairly new to Python and I have a .csv file which contains data for racers names, start and finish times. 好的,所以我刚接触Python,我有一个.csv文件,其中包含赛车手姓名,开始和结束时间的数据。 I need to calculate the time taken and output the additional information, plus the earlier data to a new .csv. 我需要计算花费的时间并输出其他信息,以及将较早的数据输出到新的.csv。
This is what I have so far: 这是我到目前为止的内容:
import csv
input_file = csv.DictReader(open("runners_times.csv"))
for row in input_file:
time_taken = float(row["finish_time"])-float(row["start_time"])
print (row)
print (time_taken)
with open("runners_times_appended.csv", "w+") as to_file:
writer = csv.writer(to_file, delimiter=",")
for row in input_file:
writer.writerows(all)
This is creating the new .csv but the file is empty. 这正在创建新的.csv,但文件为空。 Your Help is gratefully appreciated. 非常感谢您的帮助。
I didn't fully understand how are you using time_taken in your file which you are going to save. 我不完全了解如何在要保存的文件中使用time_taken。
As I understand you need to add/change column in your dataFrame/csvFile with time_taken. 据我了解,您需要使用time_taken在dataFrame / csvFile中添加/更改列。 You could do it with pandas package: 您可以使用pandas软件包来做到这一点:
import pandas as pd
df = pd.read_csv("runners_times.csv")
df["time_taken"] = df["finish_time"] - df["start_time"]
df.to_csv("new_name.csv")
Try this: 尝试这个:
import csv
data_list = []
input_file = csv.DictReader(open("runners_times.csv"))
for row in input_file:
time_taken = float(row["finish_time"])-float(row["start_time"])
row.update({"time_taken":time_taken})
data_list.append(row)
keys = data_list[0].keys()
with open("runners_times_appended.csv", "w") as fp:
dict_writer = csv.DictWriter(fp, keys)
dict_writer.writeheader()
dict_writer.writerows(data_list)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.