连续CSV行中净值的最佳方法

时间:2017-05-30 18:09:59

标签: javascript python excel csv data-munging

寻找有关执行以下操作的最佳方法的建议。最好是在python,javascript或excel中。数据是CSV格式(虽然我删除了下面的逗号)。我是个菜鸟;我应该能够做到这一点,但我认为这是一种优雅的方式来做这样的事情,因为它是一个基本的操作。

Direction    Name       Trial    Amount
        +    Matthew        1       500
        -    Matthew        1       250
        -    Matthew        1       250
        +    Matthew        2      1000
        -    Matthew        2       750
        +    Matthew        3       500
        +    Mark           1       500
        -    Mark           1       250
        +    Luke           1      1000
        +    Luke           2      1000
        +    Luke           3      1000
        -    Luke           2       500

按名称和试用计算每个金额(数据集中的大量试验)。

结果将是:

Direction    Name       Trial    Amount
        +    Matthew        2       250
        +    Matthew        3       500
        +    Mark           1       250
        +    Luke           1      1000
        +    Luke           2       500
        +    Luke           3      1000

提前致谢!

1 个答案:

答案 0 :(得分:0)

这是Python中的一种方法。

import pandas as pd
import numpy as np

df['vals'] = df.apply(lambda x: x['Amount'] if x['Direction'] == '+' else x['Amount']*-1, axis=1)

pd.pivot_table(df, values='vals', columns=['Name','Trial'], aggfunc=np.sum)

Name     Trial
Luke     1        1000
         2         500
         3        1000
Mark     1         250
Matthew  1           0
         2         250
         3         500
dtype: int64