如何将csv文件中的信息与Python进行比较?
我正在处理一个csv文件。 我有不同的列,每个列对应于我的数据集的一个信息。 假设我的文件中每行都包含:如何将csv文件中的信息与Python进行比较?,python,compare,lines,Python,Compare,Lines,我正在处理一个csv文件。 我有不同的列,每个列对应于我的数据集的一个信息。 假设我的文件中每行都包含: 姓名信息1信息2信息3 -对于具有相同名称和信息1和2的行,我必须计算inf3的平均值 这是我停下来的一段代码: col_a=[row[1] for row in file] for i in col_a: currentrow=col_a[1] nextrow=col_a[2] for i in range(0,len(col_a)): if (currentr
- 姓名信息1信息2信息3
col_a=[row[1] for row in file]
for i in col_a:
currentrow=col_a[1]
nextrow=col_a[2]
for i in range(0,len(col_a)):
if (currentrow)==set(nextrow):???
几个月前我开始编程,请理解我的困难。我仍在努力理解需要什么,但现在开始。下面的脚本首先将第一列匹配的行组块在一起,例如3个“aaa”行 对于每个块,它定位具有匹配的感兴趣列的行。如果发现两个或两个以上,则计算其平均值
import collections
file = [
["aaa", "3", "x", "g", "b", 4],
["aaa", "4", "e", "r", "t", 3],
["aaa", "3", "x", "g", "b", 7],
["vv1", "5", "w", "a", "s", 42],
["vv2", "5", "w", "a", "s", 10],
["vvv", "5", "w", "a", "s", 1],
["vvv", "5", "w", "a", "s", 4],
["vvv", "5", "w", "a", "s", 3]]
def calculate_stats(block):
d = collections.defaultdict(list)
# Build a dictionary of rows with matching columns
for cols in block:
key = (cols[2], cols[3]) # columns to match e.g. "x" and "g"
d[key].append(cols)
for key, rows in d.items():
if len(rows) > 1:
col_f = [cols[5] for cols in rows] # calculate mean on col f
print "Matched: ", rows, "Mean: ", sum(col_f) / float(len(col_f))
last_row = file[0]
block = []
for cols in file:
if cols[0] == last_row[0]:
block.append(cols)
elif len(block) > 1:
calculate_stats(block)
block = [cols]
else:
block = []
last_row = cols
# Deal with any remainder
if len(block) > 1:
calculate_stats(block)
对于我使用的示例数据,将显示以下结果:
Matched: [['aaa', '3', 'x', 'g', 'b', 4], ['aaa', '3', 'x', 'g', 'b', 7]] Mean: 5.5
Matched: [['vvv', '5', 'w', 'a', 's', 4], ['vvv', '5', 'w', 'a', 's', 3]] Mean: 3.5
阅读python的csv模块不,我可以阅读csv文件。我不知道如何进行比较。我将放一段代码。从您的示例中不清楚您需要什么。您是否可以编辑您的问题以包含CSV中的两行完整内容?一个匹配,一个不匹配。文件排序了吗?你需要记住过去的台词吗?谢谢你的评论和补充信息。你能编辑这个问题以包含它们吗?所以这个问题需要独立思考,因为这里的评论被认为是转瞬即逝的。谢谢,即使我解释得不正确,你也完全理解!很乐意帮忙,你觉得它很有用。