在交易数据中,常常会看到同一币种的多次买入,买入的单价和数量可能有所不同。如果我们想要计算每个币种的总量、总价以及加权平均价格,就需要对数据进行整理和计算。本文将通过 Excel 和 Python 两种方法,帮助你实现这一目标。
示例数据
假设我们有一份交易数据,包含以下列:
- 时间:交易时间
- 币种:买入的币种
- 交易方向:买入(BUY)或卖出(SELL)
- 单价:买入的单个币种价格
- 数量:买入的数量
- 总价:买入币种的总花费(单价 × 数量)
举个例子:
时间 | 币种 | 交易方向 | 单价 | 数量 | 总价 |
---|---|---|---|---|---|
2024/2/29 10:26 | ARKM | BUY | 2.2753 | 94 | 213.8782 |
2024/2/29 10:26 | ARKM | BUY | 2.2748 | 4 | 9.0992 |
2024/2/29 10:26 | ARKM | BUY | 2.2749 | 50 | 113.745 |
2024/2/29 10:25 | EDU | BUY | 0.91094 | 13 | 11.8422 |
2024/4/7 12:39 | ENA | BUY | 1.194 | 1687.05 | 2014.3377 |
或者如下图: 我们需要计算:
- 每个币种的买入总量。
- 每个币种的买入总价。
- 每个币种的加权平均价格,即
(单价 * 数量) / 总量
。
方法 1:使用 Excel 计算
Excel 的透视表功能非常适合进行分组统计,但它没有内置的加权平均计算功能。因此,我们需要稍微调整一下流程:
步骤 1:创建透视表
- 打开 Excel 文件,并确保数据格式正确。
- 选择所有数据区域(包括表头),然后点击 插入 -> 透视表。
- 在弹出的窗口中选择 新工作表,然后点击 确定。
步骤 2:设置透视表字段
- 将 币种 拖到 行 区域。
- 将 数量 和 总价 拖到 值 区域,并设置它们的求和(默认即为求和)。
这样你可以得到每个币种的总量和总价。
步骤 3:计算加权平均价格
- 在透视表旁边创建一个新的列来计算加权平均价格。
- 假设透视表的 总价 在 G 列,数量 在 F 列,则在新列的第一个单元格(假设是 H2)中,输入以下公式:
1
=G2/F2
- 将该公式复制到下面的单元格,得到每个币种的加权平均价格。
完整的透视表示例
币种 | 总量 | 总价 | 加权平均价格 |
---|---|---|---|
ARKM | 529 | 1070.349 | 2.024 |
EDU | 1004.3 | 915.561 | 0.912 |
ENA | 5636.82 | 7639.734 | 1.353 |
最后得出表格如下:
方法 2:使用 Python 计算加权平均价格
如果你更喜欢使用 Python 来自动化计算,可以使用 pandas
库进行处理。以下是完整的 Python 脚本,帮助你根据数据计算每个币种的买入总量、总价和加权平均价格。
步骤 1:安装 pandas 库
如果你还没有安装 pandas
库,可以通过以下命令安装:
|
|
步骤 2:Python 脚本
|
|
解释:
- 读取数据:通过
pandas
的read_excel()
函数读取 Excel 文件。 - 计算加权价格:使用
买入单价 * 数量
计算每笔交易的加权价格。 - 按币种分组:通过
groupby('币种')
对数据按币种分组,计算 总量 和 总价(加权价格的总和)。 - 计算加权平均价格:最后,使用
总价 / 总量
来计算每个币种的加权平均价格。 - 输出结果:通过
to_excel()
将结果保存到新的 Excel 文件中。
输出结果
币种 | 总量 | 总价 | 平均价格 |
---|---|---|---|
ARKM | 529 | 1070.349 | 2.024 |
EDU | 1004.3 | 915.561 | 0.912 |
ENA | 5636.82 | 7639.734 | 1.353 |
总结
- Excel 方法:通过透视表和手动计算加权平均价格,你可以快速实现每个币种的统计。
- Python 方法:通过
pandas
自动化处理,你可以更加灵活地计算和输出结果,特别适用于数据量较大的情况。
选择适合你的方法来进行计算,如果你有任何问题或需要进一步调整,欢迎随时联系我!