python - 从一个 csv 文件中提取指定数据,然后使用 python 分配给另一个 csv 文件

标签 python python-2.7 csv

我得到了一个包含此表单数据的 csv 文件,

enter image description here

我想从C列中提取数据并将它们写入一个新的csv文件中,如下所示,

enter image description here

所以我需要做两件事:

  • 将“节点”和从 1 到 22 的数字写入第一行和第一列(因为在本例中,输入 csv 中的 A 列中有 22 个重复循环)

enter image description here

  • 我已经提取了 c 列中的数据并写入输出 csv,如下所示,

enter image description here

我需要每 22 行转置一次这些数据,并将它们填充到 Excel 中从 B2 位置开始的行,然后是 B3、B4,...等。

很明显,我必须循环遍历每一行才能有效地完成此操作,但我不知道如何在 python 中应用 csv 模块。

我应该下载 xlrd 包,还是只能使用内置的 csv 模块来处理这个问题?

我正在 Windows 8.1 x64 下使用 python 2.7.6 和 pyscripter。如有任何建议,请随时给我,非常感谢!

最佳答案

阅读the csv python documentation .

使用 csv 读取器迭代行的简单方法:

import csv

X = []
spamreader = csv.reader('path_to_file/filename.csv',delimiter=',')
for row in spamreader:
    X.append(row)

这将创建一个包含所有 csv 数据的变量。文件的结构将使其难以阅读,因为 cell_separator 是“,”,但每个单元格内也有多个逗号,并且由于括号的原因,将出现字符串和数字数据的混合,需要进行一些清理。如果您有权重新格式化 csv,如果每个单元格看起来像 1,2,0.01 而不是 (1,2,0.01),可能会更容易,还可以考虑在单元格之间使用不同的分隔符,例如“;”。

如果不希望进行一些繁琐的数据清理,请务必阅读上面链接的文档。

编辑:尝试以下操作

import csv
X = [] 
with open('path_to_file/filename.csv','rb') as csvfile:
    spamreader = csv.reader(csvfile,delimiter=',')
    for row in spamreader:
        rowTemp = []
        for i in range(len(row)):
            if (i+1)%3==0:  #gets every third cell
                rowTemp.append(row[i])
        X.append(rowTemp)

这是所有距离值的矩阵。然后尝试:

with open('path_to_output_file/output_file.csv','wb') as csvfile:
spamwriter = csv.writer(csvfile,delimter=',')
for sublist in X:
    spamwriter.writerow(sublist)

不确定这是否正是您正在寻找的内容,但应该很接近。它输出一个删除了所有节点对的 csv 文件

关于python - 从一个 csv 文件中提取指定数据,然后使用 python 分配给另一个 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22779964/

相关文章:

python - python 路径名中需要的入门

python - 将 'from __future__' 与 ipython 和 PYTHONSTARTUP 一起使用

c# - ASP.NET Web API Post 方法错误

Python:如何用半角字符替换全角字符?

python - 如何在Python中进行数据并行化?

python - 从子流程中重新引发异常

python - 为什么按索引弹出或删除时会出现 IndexError ?

javascript - Node.js 写入 CSV 文件

python - 在 for 循环期间创建数据框

php - 当我们在数据库中有数百万行时,制作 CSV 的最佳方法是什么 - PHP