python - 如何在Python中分组后减去行?
问题描述
我有一个dataframe
,申请后groupby().sum
,我得到了这个结果。
是)我有的
Market Type Amount
A Buy 46.56
B Buy 100.00
Sell 100.00
C Buy 697.20
D Buy 100.00 <--
Sell 40.00 <--
... ... ...
我现在想要的
Market Type Amount
A Buy 46.56
C Buy 697.20
D Buy 60.00 <--
... ... ...
需要考虑的事项
B
应该从dataframe
因为100.00 - 100.00 = 0
- 总是
Buy Amount > Sell Amount
我怎样才能达到这个结果?
解决方案
我猜这不是优化的方式,但你可以试试这个代码块;
idx = df[df["Type"] == 'Sell'].index
df.loc[idx, 'Amount'] = df.loc[idx, 'Amount'] * (-1)
df = df.groupby(['Market'], as_index=False).agg({'Type': 'min', 'Amount': 'sum'})
df = df.loc[~((df['Amount'] == 0))]
推荐阅读
- javascript - 如何通过主屏幕书签(嵌入式)检测应用程序正在被访问?
- android - 与硬件、arduino 等相关的问题
- android - HttpURLConnection 没有保存文件
- pandas - 导入熊猫时无法导入名称“nosetester”错误
- keras - 为什么 tf 中的 optimizer.get_gradients(...) 不起作用?
- python - Pyspark groupBy DataFrame 没有聚合或计数
- javascript - 在 iframe 中触发“点击”事件
- php - 来自具有相同 ID 的数据库结果的多维数组 PHP
- ios - 拥有一个带有多个 UICollection 视图部分的主要粘性标题?Xcode - 斯威夫特
- firebase - 云函数影响读/写配额