python - 大熊猫行的聚合
问题描述
我正在尝试解析和组织交易历史文件。
我试图将具有相同类型的每 3 或 4 行聚合在一起:BUY 或 SELL 在一起,如果它们仅在彼此之后出现。如果他们不这样做,那么我只想坐一排。
正如您在下面的示例中看到的那样,我希望将它们汇总在一行中,然后再进行另一行卖出交易。
在具有汇总交易价格和金额的新 df 中。csv 链接:https ://drive.google.com/file/d/1GoDRdI7G8uJzuLoFrm5InbDg23mAwW6o/view?usp=sharing
解决方案
您可以使用它来获得您正在寻找的结果。当前一个值不等于当前值时,我使用累积和。
dictionary = { "BUY": 1, "SELL": 0}
df['id1'] = df['Type'].map(dictionary)
df['grp'] = (df['id1']!=df['id1'].shift()).cumsum()
groupby
现在您可以使用如下所示的简单方法聚合这些值。这将汇总每次连续买卖的金额
df.groupby(['grp'])['Amount'].sum()
这是 grp 列的输出。
Type grp
0 BUY 1
1 BUY 1
2 BUY 1
3 BUY 1
4 SELL 2
5 SELL 2
6 SELL 2
7 SELL 2
8 BUY 3
9 SELL 4
10 BUY 5
11 SELL 6
12 BUY 7
13 SELL 8
14 BUY 9
15 BUY 9
16 SELL 10
17 SELL 10
推荐阅读
- java - java中移动的JLabel
- wordpress - 检查第一次登录wordpress
- php - 如何将 SELECT 转换为 SELECT JOIN?
- npm - 将 Angular 5 更新到 Angular 6 在包“ng2-pdf-viewer”上出现错误缺少对等依赖项
- javascript - 为什么自制斜率功能不起作用
- ajax - React:从嵌套数组中获取数据
- xcode - 运行我之前提交的版本
- vba - VBA:根据相邻单元格编辑单元格值而无需循环
- android - Android Emulator 虚拟场景选项不见了
- javascript - chrome 扩展 onUpdated 为时已晚