选择数据框中包含最大行数日期的行

2024-10-05 09:59:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧HistDf5,有一个datetime索引和4列。我想计算每个日期内每个日期的行数(即“次数”),并选择“次数”最多的日期

                     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]

计算每个日期的条目数很简单。然而,一旦我有了我想要的日期,我就不知道如何分割数据帧来只选择那些“次数”最多的日期

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]

Tags: columns数据closedatetimeindexopennan次数
1条回答
网友
1楼 · 发布于 2024-10-05 09:59:42

如果我理解正确,您可以使用transform,然后选择max count

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     |

相关问题 更多 >

    热门问题