Python 对csv中的类执行比较计算

Python 对csv中的类执行比较计算,python,python-2.7,csv,collections,dictionary,Python,Python 2.7,Csv,Collections,Dictionary,我正在尝试对csv中的数据组执行一个相对简单的计算。我有一种感觉,我需要使用的函数包含在collections库中,但我已经多次阅读了该库的文档()。我不知道如何使用这个库来实现我想要的输出。也许还有别的办法 我需要(有效地)做的是;对于每个Uniqueclasselement组,确定第4列中的最大数字(从零开始的列引用)。然后对于该组中的每一行,计算该“大”数字与该行第4列数字之间的差值。对于Uniqueclasselement1中的前三行,它将是615和2(分别为111减105、96和109

我正在尝试对csv中的数据组执行一个相对简单的计算。我有一种感觉,我需要使用的函数包含在collections库中,但我已经多次阅读了该库的文档()。我不知道如何使用这个库来实现我想要的输出。也许还有别的办法

我需要(有效地)做的是;对于每个
Uniqueclasselement
组,确定第4列中的最大数字(从零开始的列引用)。然后对于该组中的每一行,计算该“大”数字与该行第4列数字之间的差值。对于
Uniqueclasselement1
中的前三行,它将是
6
15
2
(分别为111减105、96和109)。然后,我需要将此数字添加到列
2
中的数字,并将结果附加到此csv中的新列

示例数据: 预期结果
我已经定义了我希望承担的全部任务,不是为了让stackoverflow社区向我提供全部代码,而是为了定义我试图实现的场景。评论中提到,这可能是熊猫中的一行代码。我刚刚花了3个小时在youtube上观看熊猫教程,对于如何为这个csv的每个uniqueclasselement执行上述计算,我一点也不知道。我真的很感激一些建设性的意见或指导,而不是标准的“你尝试了什么”旅。

这是一个真正的一行吗?感谢链接我现在正在寻找也许我不应该定义整个任务,我这样做主要是为了设置场景。这是一个一行的真实?感谢链接我现在正在寻找也许我不应该定义整个任务,我这样做主要是为了设置场景。如果这段代码有效,我将奖励50分奖金,并在我的编码曲目中添加一些新方法!(看起来太简单了!)谢谢你的回复!(预测试)如果这段代码有效,我将奖励50分奖金,并在我的代码库中添加一些新方法!(看起来太简单了!)谢谢你的回复!(预测试)
data,Uniqueclasselement1,52,data,105
data,Uniqueclasselement1,58,data,96
data,Uniqueclasselement1,59,data,109
data,Uniqueclasselement1,42,data,111
data,Uniqueclasselement1,32,data,107
data,Uniqueclasselement1,49,data,105
data,Uniqueclasselement1,50,data,104
data,Uniqueclasselement1,51,data,89
data,Uniqueclasselement1,79,data,99
data,Uniqueclasselement2,69,data,105
data,Uniqueclasselement2,58,data,96
data,Uniqueclasselement2,88,data,109
data,Uniqueclasselement2,84,data,111
data,Uniqueclasselement2,90,data,107
data,Uniqueclasselement2,55,data,105
data,Uniqueclasselement2,56,data,104
data,Uniqueclasselement2,79,data,89
data,Uniqueclasselement2,79,data,99
data,Uniqueclasselement3,63,data,105
data,Uniqueclasselement3,66,data,96
data,Uniqueclasselement3,69,data,109
data,Uniqueclasselement3,72,data,111
data,Uniqueclasselement3,52,data,107
data,Uniqueclasselement3,89,data,105
data,Uniqueclasselement3,70,data,104
data,Uniqueclasselement3,91,data,89
data,Uniqueclasselement3,79,data,99
data,Uniqueclasselement1,52,data,105,58
data,Uniqueclasselement1,58,data,96,73
data,Uniqueclasselement1,59,data,109,61
data,Uniqueclasselement1,42,data,111,42
data,Uniqueclasselement1,32,data,107,36
data,Uniqueclasselement1,49,data,105,55
data,Uniqueclasselement1,50,data,104,57
data,Uniqueclasselement1,51,data,89,73
data,Uniqueclasselement1,79,data,99,91
data,Uniqueclasselement2,69,data,105,81
data,Uniqueclasselement2,58,data,96,79
data,Uniqueclasselement2,88,data,109,96
data,Uniqueclasselement2,84,data,117,84
data,Uniqueclasselement2,90,data,107,100
data,Uniqueclasselement2,55,data,105,67
data,Uniqueclasselement2,56,data,104,69
data,Uniqueclasselement2,79,data,89,107
data,Uniqueclasselement2,79,data,99,97
data,Uniqueclasselement3,63,data,105,67
data,Uniqueclasselement3,66,data,96,79
data,Uniqueclasselement3,69,data,109,69
data,Uniqueclasselement3,72,data,101,80
data,Uniqueclasselement3,52,data,107,54
data,Uniqueclasselement3,89,data,105,93
data,Uniqueclasselement3,70,data,104,75
data,Uniqueclasselement3,91,data,89,111
data,Uniqueclasselement3,79,data,99,89
import pandas as pd
df = pd.read_csv('inputfile.csv', header=None, sep=',')

df[5] = df.groupby(1)[4].transform(max)-df[4]+df[2]

df.to_csv('test.csv', header=False)