我在英国有大约2500个IPO的数据框架。其中两列是“交易所”(交易的交易所)。另一列是“ StartToEnd”,其中指出了从第一天到结束的IPO价格变化,所以我可能是“ 7.56”,所以价格上涨了7.56%,如果价格下跌,它可能是负数。我想做的是能够计算出每个交易所在“ StartToEnd”列中具有正值的IPO数量。
因此理想情况下,它会得到一个答案,例如:
London Stock Exchange. 1356
Berlin stock Exchange. 659
表示有1356只被低估的IPO在伦敦证券交易所交易
到目前为止,我所做的全部工作都是使用上面提到的两列创建一个较小的数据框,如下所示:
Index Exchange StartToEnd
0. London... 17.12
1. London... -1.5
2. Berlin... 14.94
Etc...
答案 0 :(得分:0)
我想这就是您要寻找的东西
df=pd.DataFrame({'Exchange':['London','London','London','Berlin','London','London','Berlin','London','London',], 'StartToEnd':[1,2,3,4,-1,-1,-2,-1,3]})
Exchange StartToEnd
0 London 1
1 London 2
2 London 3
3 Berlin 4
4 London -1
5 London -1
6 Berlin -2
7 London -1
8 London 3
df[df['StartToEnd'].gt(0)].Exchange.value_counts()
London 4
Berlin 1
Name: Exchange, dtype: int64
答案 1 :(得分:0)
根据您的描述进行猜测,您应该拥有一个包含以下列的数据框-
df -
Company Exchange StartToEnd
Comp1 London 1.23%
Comp2 Berlin 2.45%
Comp3 London -0.54%
Comp4 London 12.54%
.
.
.
CompN Berlin 10.20%
公司栏不是必需的。
一个快速的答案是简单地分别计算它们-
ans1 = sum(df$Exchange == "London" & df$Exchange > 0)
ans2 = sum(df$Exchange == "Berlin" & df$Exchange > 0)
但是,使用更通用的方法,您可以进行分组,以获取所需的答案-
library(dplyr)
ans <- df[df$StartToEnd > 0,] %>% group_by(Exchange) %>% summarise(count=n())
希望这就是您所需要的。