【问题标题】:How to drop rows in pandas dataframe, when there is similar values?当有相似的值时,如何在熊猫数据框中删除行?
【发布时间】:2021-09-25 17:07:59
【问题描述】:

我有一个股票数据的 python pandas 数据框,我正在尝试过滤其中的一些代码。 有些公司有 2 个或更多股票代码(当优先股而另一种不是时,不同类型的股票)。 我想放弃那些额外的股票价值,而只保留交易量更大的股票。在数据框中我也有公司名称,所以也许有一种方法可以使用它来制作一些条件,然后在比较同一家公司的数量时将其删除?我怎样才能做到这一点?

【问题讨论】:

  • 想出一个你希望保留的布尔数据框并过滤(索引)。

标签: python pandas dataframe stock


【解决方案1】:

使用 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

【讨论】:

  • 完美运行!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 2021-04-10
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多