-1

寻找有关执行以下操作的最佳方法的建议。最好在 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

提前致谢!

4

1 回答 1

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
于 2017-05-30T18:23:08.970 回答