使用python将csv文件中的特定列附加到另一个列

时间:2010-07-09 10:01:28

标签: python csv

我会解释我的整个问题:
我有2个csv文件:

  • project-table.csv(有大约50列)
  • interaction-matrix.csv(约有45列)

我想将来自project-table.csv的字符串附加到interaction-matrix.csv的col[43]中的字符串,并在两个字符串之间添加一个点(col[1]

下,

  • interaction-matrix.csv有一组标题..
  • 在完成我上面提到的
  • 之后,它的第一个col将会有附加的字符串
  • 所有其他剩余列只有0和1
  • 我应该只从这个interaction-matrix.csv中提取那些带有1的列并将其复制到新的csv文件中......(第一列完好无损)

这是我提出的代码......

我收到了.行的错误...

keepcols

这是我得到的错误:

import csv
reader=csv.reader(open("project-table.csv","r"))
writer=csv.writer(open("output.csv","w"),delimiter=" ")
for data in reader:
        name1=data[1].strip()+'.'+data[43].strip()
        writer.writerow((name1, None))


reader=csv.DictReader(open("interaction-matrix.csv","r"),[])
allrows = list(reader)
keepcols = [c for c in allrows[0] if all(r[c] != '0' for r in allrows)]

print keepcols
writer=csv.DictWriter(open("output1.csv","w"),fieldnames='keepcols',extrasaction='ignore')
writer.writerows(allrows)

项目表和交互矩阵在它们各自的第1列中都有相同的数据..所以我只是将prj-table的col [43]附加到同一个表本身的col [1] ...

1 个答案:

答案 0 :(得分:1)

编辑您的问题以显示您收到的错误消息。更新:NameError可能意味着您使用的是(较旧的)Python版本(哪一个?)没有all()或(您使用all作为变量名称并且没有显示您运行的确切代码)

注意:分别以二进制模式(“rb”和“wb”)打开两个文件。

你说“我想在project-table.csv中用col [43]中的字符串在interaction-matrix.csv的col [1]中添加字符串,并在两个字符串之间添加一个点(。)”HOWEVER you正在使用project-table.csv的col [2](而不是col [1])(而不是在那个阶段没有打开的interaction-matrix.csv)。