当前位置: 首页 > 面试题库 >

在Python中以不同顺序写出CSV列

颜博达
2023-03-14
问题内容

我意识到这与这个问题非常相似。但是,我有一个CSV文件,该文件的格式始终与我需要用不同顺序写出的列相同,以便将其向下移动到数据处理管道中。如果我的csv文件包含标题和数据,如下所示:

Date,Individual,Plate,Sample,test,QC
03312011,Indiv098,P342,A1,deep,passed
03312011,Indiv113,P352,C3,deep,passed

我将如何写出与原始输入csv具有相同列但按以下顺序排列的csv文件:

test,QC,Plate,Sample
deep,passed,P342,A1
deep,passed,P352,C3

我最初的想法是做这样的事情:

f = open('test.csv')
lines = f.readlines()
for l in lines:
    h = l.split(",")
    a, b, c, d, e, f  = h
    for line in h:
        print e, f, c, d,

问题答案:

如果极有可能每次输入文件或输出文件都不会具有相同的布局,则这是获取“ reorderfunc”的更通用的方法

writenames = "test,QC,Plate,Sample".split(",") # example
reader = csv.reader(input_file_handle)
writer = csv.writer(output_file_handle)
# don't forget to open both files in binary mode (2.x)
# or with `newline=''` (3.x)
readnames = reader.next()
name2index = dict((name, index) for index, name in enumerate(readnames))
writeindices = [name2index[name] for name in writenames]
reorderfunc = operator.itemgetter(*writeindices)
writer.writerow(writenames)
for row in reader:
    writer.writerow(reorderfunc(row))


 类似资料:
  • 问题内容: 我是Python多线程的新手,目前正在编写一个附加到csv文件的脚本。如果要向提交多个线程,则将行追加到csv文件中。如果附加是这些线程执行的唯一与文件相关的操作,我该怎么做才能保证线程安全? 我的代码的简化版本: 我的线程类是: 我应该设置一个单独的单线程执行程序来处理编写,还是担心我是否只是追加? 编辑:我应该详细说明,下一次附加文件之间的分钟之间,写操作发生的时间可能会相差很大,

  • 问题内容: 我在右列中有2列和嵌套行,如何使Bootstrap响应如下, 布局: 这是我的代码: 使用此代码,移动版本为1 3 2的订单为1 2 3。 问题答案: 因为Bootstrap 4使用的是flexbox,所以 列的高度总是相等的 ,因此您将无法获得所需的桌面(lg)布局。 一种选择 是禁用的flexbox 。使用 浮点数 ,以使1,3列自然向右拉,因为2更高。Flexbox 将在移动设备

  • 在以下问题的帮助下,我学会了如何使用和: 如何在相同的SELECT语句中使用Distince和ORDER BY? 我从以下问题中学会了使用: 如何首先返回具有特定值的行? 但我有一个很难写的查询: 我有一个表和一个列,我想要获得客户的所有indist名称,并且我想首先找到名称“hamza”。 错误: 错误:对于SELECT DISTINCT,ORDER BY表达式必须出现在SELECT List

  • 问题内容: 可以说我在一个文件夹中有三个文件:file9.txt,file10.txt和file11.txt,我想按此特定顺序读取它们。谁能帮我这个? 现在我正在使用代码 它先读取file10.txt,然后读取file11.txt,然后读取file9.txt。 有人可以帮助我如何获得正确的订单吗? 问题答案: 文件系统上的文件未排序。您可以使用函数自己对生成的文件名进行排序: 请注意,您代码中的调

  • 问题内容: 我想做的是使用matplotlib,basemap,python等在地图上绘制特定风暴的纬度和经度值。我的问题是我正在尝试提取风暴的纬度,经度和名称。 map,但在第41-44行之间一直出现错误,在该行中尝试将列提取到列表中。有人可以帮我解决这个问题。提前致谢。 该文件如下所示: 我希望列表如下所示: 这是我到目前为止的内容: 这是我收到的最后一条错误消息/回溯: 追溯(最近一次通话)

  • 问题内容: 我有一个在while循环中生成一堆数据的python脚本。我需要将此数据写入CSV文件,因此它是按列而不是行写入的。 例如,在脚本的循环1中,我生成: 我需要它来反映在我的csv脚本中,如下所示: 在第二个循环中,我生成: 我需要它来像这样在我的csv文件中查找: 依此类推,直到while循环结束。有谁能够帮助我? 编辑 while循环可以持续超过100,000个循环 问题答案: 之所