我试图从CSV文件(a)中读取数据,提取数据,并将其写入另一个CSV文件(B)。在新文件B中,我想要两行。第一行应该包含所有预定义的变量,第2行应该填充属于第1行中特定变量的所有值。在
我希望任何人都能告诉我实现这一目标的最佳方法。(我添加了我在这篇文章末尾使用的.csv文件)
(A)Python代码
import re
import csv
#Call for the export file
data = open('C:/Exports/Export 3.csv')
#Make a list with the predefined variables
definition = ["record_id", "abbreviation", "study_id", "step_count",
"distance", "ambulation_time", "velocity", "cadence", "norm_velocity",
"step_time_differential", "step_length_differential",
"cycle_time_differential", "step_time", "step_length", "step_extremity",
"cycle_time", "stride_length", "hh_base_support", "swing_time",
"stance_time", "single_support_time", "double_support_time", "toe_in_out"]
my_data = {}
#Show data for each row without whitespace
for line in data:
line = line.rstrip()
#print(line)
values = re.findall("-?[0-9].+", line)
print(values)
这是上述代码将生成的输出的一部分:
^{pr2}$正如您在输出代码中看到的,有些行包含两个值,例如:['2988;6,32'],这些行需要变成1个值,方法是在将两个值写入csv文件之前计算两个值的平均值。在
(B)期望输出
record_id abbreviation study_id step_count distance
1 3 292,34
如果您愿意,可以使用导出文件,您可以在此处下载: CSV export file
差不多完美了!好像有点小问题。 在结果.csv我缺少以下变量的值:
我用代码的这一部分来检查结果:
^{pr2}$这给了我以下信息:
从上面的输出中,您可以看到名称与多个字符串匹配时存在一些问题(如velocity),而有些根本不匹配(如toe_u in_out),我不知道如何解决这个问题。在
我还试图计算两个值的平均值,但这给了我一个错误:ValueError:无法将字符串转换为float。我认为这是逗号的原因。我尝试在for循环中应用以下代码来计算平均值:
打开文件时,应使用
csv
库,semi-colon
分隔开,然后将第一列与定义中的项进行比较。这几乎可以做到:要从项目中获取平均值,可以使用:
^{pr2}$相关问题 更多 >
编程相关推荐