当前位置: 首页 > 知识库问答 >
问题:

Python方式将头添加到csv文件

鲁永福
2023-03-14

我写了一个合并两个csv文件的Python脚本,现在我想在最后的csv中添加一个头。我试图遵循这里报告的建议,我得到了以下错误:预期的字符串,浮点找到。解决这个问题最重要的方法是什么?

以下是我正在使用的代码:

import csv

with open('combined_file.csv', 'w', newline='') as outcsv:
    writer = csv.DictWriter(outcsv, fieldnames = ["Date", "temperature 1", "Temperature 2"])
    writer.writeheader()

    with open('t1.csv', 'r', newline='') as incsv:
        reader = csv.reader(incsv)
        writer.writerows(row + [0.0] for row in reader)

    with open('t2.csv', 'r', newline='') as incsv:
        reader = csv.reader(incsv)
        writer.writerows(row[:1] + [0.0] + row[1:] for row in reader)

共有3个答案

宋臻
2023-03-14

这对我有用。

header = ['row1', 'row2', 'row3']
some_list = [1, 2, 3]
with open('test.csv', 'wt', newline ='') as file:
    writer = csv.writer(file, delimiter=',')
    writer.writerow(i for i in header)
    for j in some_list:
        writer.writerow(j)
公孙棋
2023-03-14

在执行循环之前,只需添加一行。此行包含您的CSV文件头名称。

schema = ['a','b','c','b']
row = 4
generators = ['A','B','C','D']
with open('test.csv','wb') as csvfile:    
     writer = csv.writer(csvfile, delimiter=delimiter)
# Gives the header name row into csv
     writer.writerow([g for g in schema])   
#Data add in csv file       
     for x in xrange(rows):
         writer.writerow([g() for g in generators])
郎经纶
2023-03-14

DictWriter()类需要每行的字典。如果您只想写一个初始标头,请使用常规的csv.writer()并为标头传递一个简单的行:

import csv

with open('combined_file.csv', 'w', newline='') as outcsv:
    writer = csv.writer(outcsv)
    writer.writerow(["Date", "temperature 1", "Temperature 2"])

    with open('t1.csv', 'r', newline='') as incsv:
        reader = csv.reader(incsv)
        writer.writerows(row + [0.0] for row in reader)

    with open('t2.csv', 'r', newline='') as incsv:
        reader = csv.reader(incsv)
        writer.writerows(row[:1] + [0.0] + row[1:] for row in reader)

另一种方法是在跨数据复制时生成字典:

import csv

with open('combined_file.csv', 'w', newline='') as outcsv:
    writer = csv.DictWriter(outcsv, fieldnames = ["Date", "temperature 1", "Temperature 2"])
    writer.writeheader()

    with open('t1.csv', 'r', newline='') as incsv:
        reader = csv.reader(incsv)
        writer.writerows({'Date': row[0], 'temperature 1': row[1], 'temperature 2': 0.0} for row in reader)

    with open('t2.csv', 'r', newline='') as incsv:
        reader = csv.reader(incsv)
        writer.writerows({'Date': row[0], 'temperature 1': 0.0, 'temperature 2': row[1]} for row in reader)
 类似资料:
  • 问题内容: 我编写了一个Python脚本,用于合并两个csv文件,现在我想在最终的csv中添加标头。我尝试按照此处报告的建议进行操作,但出现以下错误:。解决此问题的最有效方法是什么? 这是我正在使用的代码: 问题答案: 该班预计 字典 的每一行。如果您只想编写一个初始标头,请使用常规并在标头的简单行中传递: 另一种方法是在跨数据复制时生成字典:

  • 问题内容: 我正在用csv快速编写以下数据: 当我完成解析第一个文件并启动第二个文件时,我想添加更多列,如下所示: parsed STEP ID ELEMENT_ID Fatigue SW Fatigue F1 Fatigue F3 Fatigue SW Fatigue F1 Fatigue F3 Step 10 10000 1.30E-07 1.51E-06 2.15E-06 1.30E-07

  • 问题内容: 我想知道是否可以使用函数将数据框添加到现有的csv文件中。csv文件与加载的数据具有相同的结构。 问题答案: 你可以在函数中指定python写入模式。对于追加,它是。 在你的情况下: 默认模式为。

  • 我试图将csv文件中的行添加到数组中,但出现错误。文件读取器带来了“未找到文件”异常和AllPlatform。add(Arrays.asList(values))正在标记错误所需的类型(平台),提供的字符串。 这是一个标准项目,我被要求不要更改csv文件的目录 这是我的密码游戏。JAVA 平台。JAVA platforms.csv

  • 我有一个CSV文件,有五列和数百行。我想给每一列添加一个标题。例如 我已经尝试了下面的代码,它确实成功地添加了标题,但是,它也将所有列合并为一个。这不是我想要的 此代码将导致下表

  • 问题内容: 我想创建一个zip文件。在zip文件中添加一个文件夹,然后在该文件夹中添加一堆文件。 因此,我想得到一个压缩文件,里面只有一个文件夹。 我不知道在zip文件或其他内容中包含文件夹是否是一种不好的做法,但是google在这个问题上没有给我任何帮助。 我从这个开始: 摘自:http : //mail.python.org/pipermail/python- list/2006-August