[英]Select rows in Dataframe containing dates with maximum number of rows
我有一个 Dataframe,HistDf5,有一个日期时间索引和 4 列。 我想计算每个日期内每个日期的行数(即“次数”)和 select 那些具有最大“次数”数的日期。
OPEN CLOSE HIGH LOW VOL
DTYYYYMMDD
2011-01-02 18:00:00 0.00 1.25 1.50 -0.75 24.907415
2011-01-02 18:05:00 1.25 0.50 1.75 0.25 25.743008
2011-01-02 18:10:00 0.25 0.00 0.50 0.00 22.310852
2011-01-02 18:15:00 0.25 0.75 0.75 0.25 21.303043
2011-01-02 18:20:00 0.75 0.25 0.75 0.00 15.431916
... ... ... ... ...
2014-06-24 23:35:00 -9.75 -9.50 -9.50 -10.00 16.471735
2014-06-24 23:40:00 -9.50 -9.50 -9.50 -10.00 18.634443
2014-06-24 23:45:00 -9.75 -9.50 -9.50 -10.00 13.974959
2014-06-24 23:50:00 -9.50 -9.75 -9.50 -9.75 12.305773
2014-06-24 23:55:00 -9.50 -9.75 -9.50 -9.75 15.471089
[365544 rows x 5 columns]
计算每个日期的条目数很简单。 但是,一旦我有了我想要的日期,我不知道如何将 Dataframe 切片到 select 仅具有最大“次数”的那些日期。
CountDF = HistDf5.groupby(HistDf5.index.date)['VOL'].count()
IndxLst = CountDF[CountDF == CountDF.max()].index
HistDf5 = HistDf5.loc[IndxLst]
OPEN CLOSE HIGH LOW VOL
2011-01-03 0.0 0.25 0.25 0.00 5.598422
2011-01-04 0.0 0.00 0.25 0.00 5.375278
2011-01-05 0.0 0.00 0.25 0.00 9.965758
2011-01-06 0.0 -0.25 0.00 -0.50 12.894489
2011-01-07 0.0 0.00 0.00 -0.25 3.871201
... ... ... ... ...
2014-06-20 0.0 0.00 0.00 -0.25 11.530156
2014-06-21 NaN NaN NaN NaN 0.000000
2014-06-22 NaN NaN NaN NaN 0.000000
2014-06-23 0.0 0.25 0.25 0.00 4.499810
2014-06-24 0.0 0.25 0.25 0.00 14.659017
[1269 rows x 5 columns]
如果我理解正确,您可以使用 transform 然后 select 最大计数。
df['COUNT'] = df.groupby(df.index.date)['VOL'].transform('count')
df.loc[df['COUNT'] == df['COUNT'].max()]
| DTYYYYMMDD | OPEN | CLOSE | HIGH | LOW | VOL | COUNT |
|---------------------|-------|-------|------|-------|-----------|-------|
| 2011-01-02 18:00:00 | 0 | 1.25 | 1.5 | -0.75 | 24.907415 | 5 |
| 2011-01-02 18:05:00 | 1.25 | 0.5 | 1.75 | 0.25 | 25.743008 | 5 |
| 2011-01-02 18:10:00 | 0.25 | 0 | 0.5 | 0 | 22.310852 | 5 |
| 2011-01-02 18:15:00 | 0.25 | 0.75 | 0.75 | 0.25 | 21.303043 | 5 |
| 2011-01-02 18:20:00 | 0.75 | 0.25 | 0.75 | 0 | 15.431916 | 5 |
| 2014-06-24 23:35:00 | -9.75 | -9.5 | -9.5 | -10 | 16.471735 | 5 |
| 2014-06-24 23:40:00 | -9.5 | -9.5 | -9.5 | -10 | 18.634443 | 5 |
| 2014-06-24 23:45:00 | -9.75 | -9.5 | -9.5 | -10 | 13.974959 | 5 |
| 2014-06-24 23:50:00 | -9.5 | -9.75 | -9.5 | -9.75 | 12.305773 | 5 |
| 2014-06-24 23:55:00 | -9.5 | -9.75 | -9.5 | -9.75 | 15.471089 | 5 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.