python - 当有相似的值时,如何在熊猫数据框中删除行?
问题描述
我有一个股票数据的 python pandas 数据框,我正在尝试过滤其中一些代码。有些公司有 2 个或更多股票代码(当一个股票是优先股而另一个不是时,是不同类型的股票)。我想放弃那些额外的股票价值,而只保留交易量更高的股票。在数据框中我也有公司名称,所以也许有一种方法可以使用它来制作一些条件,然后在比较同一家公司的数量时将其删除?我怎样才能做到这一点?
解决方案
使用 groupby 和 idxmax:
假设这个数据框:
>>> df
ticker volume
0 CEBR3 123
1 CEBR5 456
2 CEBR6 789 # <- keep for group CEBR
3 GOAU3 23 # <- keep for group GOAU
4 GOAU4 12
5 CMIN3 135 # <- keep for group CMIN3
>>> df.loc[df.groupby(df['ticker'].str.extract(r'^(.*)\d', expand=False),
sort=False)['volume'].idxmax().tolist()]
ticker volume
2 CEBR6 789
3 GOAU3 23
5 CMIN3 135
推荐阅读
- javascript - 为什么我的
ReactJS 项目中的组件看不到任何道具? - excel - 如何根据另一张工作表中的数据替换自动填充范围
- python - 使用knitr编织时无法在RStudio中使用网状导入geopandas
- android - android-ndk 位于哪里?
- amazon-web-services - 使用 java 的 Kinesis 跨账户访问
- php - Laravel 存储删除/清理在生产服务器上不起作用
- objective-c - HealthKit 读取数据 Heart Reat 和 BloodPressure '同步后的最新更新'
- algorithm - 使用递归的算术 Boggle
- javascript - 可以在本地接收 POST 数据,但部署后不能
- javascript - 如果文本框值等于单选按钮值,则单选按钮将激活