如何用python计算csv文件行之间的差异

时间:2014-08-26 16:51:02

标签: python csv time-series date-arithmetic

我是Python新手。我想在具有相同id的csv文件的两行之间做区别。此csv数据集是从具有超过3百万行的sql表导出构建的。

这是我的时间表数据集的示例:

DATE -  Product ID - PRICE 

26/08  - 1 -  4
26/08 - 2 - 3
27/08 - 1 - 5
27/08 - 2 - 3

例如,我想计算26/08的产品价格与第二天(27/08)的同一产品的价格之间的差异来估算价格' s随时间变化。我想知道在Python中对这些数据进行操作和计算的最佳方法是进行我的计算,无论是使用Python的csv模块还是使用代码中的SQL查询。我也听说过熊猫图书馆......谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

尝试按产品ID构建字典并在加载后分析每个ID

dd = {}
with open('prod.csv', 'rb') as csvf:
    csvr = csv.reader(csvf, delimiter='-')
    for row in csvr:
        if if len(row) == 0 or row[0].startswith('DATE'):
            continue
        dd.setdefault(int(row[1]), []).append((row[0].strip(), int(row[2])))

dd

{1: [('26/08', 4), ('27/08', 5)], 
 2: [('26/08', 3), ('27/08', 3)]}

这样可以很容易地进行比较