<i id='dPHAV'><tr id='dPHAV'><dt id='dPHAV'><q id='dPHAV'><span id='dPHAV'><b id='dPHAV'><form id='dPHAV'><ins id='dPHAV'></ins><ul id='dPHAV'></ul><sub id='dPHAV'></sub></form><legend id='dPHAV'></legend><bdo id='dPHAV'><pre id='dPHAV'><center id='dPHAV'></center></pre></bdo></b><th id='dPHAV'></th></span></q></dt></tr></i><div id='dPHAV'><tfoot id='dPHAV'></tfoot><dl id='dPHAV'><fieldset id='dPHAV'></fieldset></dl></div>
  • <tfoot id='dPHAV'></tfoot>

    <small id='dPHAV'></small><noframes id='dPHAV'>

        <bdo id='dPHAV'></bdo><ul id='dPHAV'></ul>

        <legend id='dPHAV'><style id='dPHAV'><dir id='dPHAV'><q id='dPHAV'></q></dir></style></legend>

      1. 数据帧中从第一行开始的间隔[python 3.6.0]

        时间:2024-08-21
      2. <small id='S7392'></small><noframes id='S7392'>

            <legend id='S7392'><style id='S7392'><dir id='S7392'><q id='S7392'></q></dir></style></legend>
              <tfoot id='S7392'></tfoot>

                <tbody id='S7392'></tbody>
                <bdo id='S7392'></bdo><ul id='S7392'></ul>
                <i id='S7392'><tr id='S7392'><dt id='S7392'><q id='S7392'><span id='S7392'><b id='S7392'><form id='S7392'><ins id='S7392'></ins><ul id='S7392'></ul><sub id='S7392'></sub></form><legend id='S7392'></legend><bdo id='S7392'><pre id='S7392'><center id='S7392'></center></pre></bdo></b><th id='S7392'></th></span></q></dt></tr></i><div id='S7392'><tfoot id='S7392'></tfoot><dl id='S7392'><fieldset id='S7392'></fieldset></dl></div>

                  本文介绍了数据帧中从第一行开始的间隔[python 3.6.0]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  以下数据的时间间隔为5分钟,正在尝试将其分组为10分钟

                  数据帧名称为df

                  script_id DATE_TIME 打开 关闭 音量
                  201 2019-01-01 10:45:00 1492.9 1493.85 1492.15 1492.9 7189
                  201 2019-01-01 10:50:00 1492.9 1495.95 1492.2 1495.85 15440
                  201 2019-01-01 10:55:00 1495.85 1495.95 1494 1494.5 8360
                  201 2019-01-01 11:00:00 1494.5 1494.5 1492 1492.05 9910
                  201 2019-01-01 11:05:00 1492.05 1493.9 1492 1493.35 14961
                  201 2019-01-01 11:10:00 1493.4 1493.4 1488 1489.25 16493
                  201 2019-01-01 11:15:00 1489.25 1492 1489.25 1490.6 14590
                  201 2019-01-01 11:20:00 1490.6 1491.65 1490 1491.5 3470

                  执行以下代码时:

                  df_f = df.groupby(['script_id', pd.Grouper(key='date_time', freq=f'{tf}T')])
                                              .agg(open=pd.NamedAgg(column='open', aggfunc='first'),
                                                  high=pd.NamedAgg(column='high', aggfunc='max'),
                                                  low=pd.NamedAgg(column='low', aggfunc='min'),
                                                  close=pd.NamedAgg(column='close', aggfunc='last'),
                                                  volume=pd.NamedAgg(column='volume', aggfunc='sum'))
                                                  .reset_index()
                                  print(df_f)
                  

                  结果为(已从此处删除不需要的详细信息):

                  DATE_TIME
                  2019-01-01 10:40:00
                  2019-01-01 10:50:00
                  2019-01-01 11:00:00
                  2019-01-01 11:10:00

                  但应该是(已从此处删除不需要的详细信息):-(预期结果)

                  DATE_TIME
                  2019-01-01 10:45:00
                  2019-01-01 10:55:00
                  2019-01-01 11:05:00
                  2019-01-01 11:15:00

                  推荐答案

                  在调用pd.Grouper(... offset="5T")

                  时似乎只需要提供偏移量参数
                  df_f = df.groupby(['script_id', pd.Grouper(key='date_time', freq='10T', offset="5T")])
                                              .agg(open=pd.NamedAgg(column='open', aggfunc='first'),
                                                  high=pd.NamedAgg(column='high', aggfunc='max'),
                                                  low=pd.NamedAgg(column='low', aggfunc='min'),
                                                  close=pd.NamedAgg(column='close', aggfunc='last'),
                                                  volume=pd.NamedAgg(column='volume', aggfunc='sum'))
                                                  .reset_index()
                  
                  print(df_f)
                     script_id           date_time     open     high      low    close  volume
                  0        201 2019-01-01 10:45:00  1492.90  1495.95  1492.15  1495.85   22629
                  1        201 2019-01-01 10:55:00  1495.85  1495.95  1492.00  1492.05   18270
                  2        201 2019-01-01 11:05:00  1492.05  1493.90  1488.00  1489.25   31454
                  3        201 2019-01-01 11:15:00  1489.25  1492.00  1489.25  1491.50   18060
                  

                  旧版本的pandas.Grouper对象使用base而不是offsetpd.Grouper(..., base=5)

                  >>> df_f = df.groupby(['script_id', pd.Grouper(key='date_time', freq=f'10T', base=5)])
                                              .agg(open=pd.NamedAgg(column='open', aggfunc='first'),
                                                  high=pd.NamedAgg(column='high', aggfunc='max'),
                                                  low=pd.NamedAgg(column='low', aggfunc='min'),
                                                  close=pd.NamedAgg(column='close', aggfunc='last'),
                                                  volume=pd.NamedAgg(column='volume', aggfunc='sum'))
                                                  .reset_index()
                  
                  print(df_f)
                     script_id           date_time     open     high      low    close  volume
                  0        201 2019-01-01 10:45:00  1492.90  1495.95  1492.15  1495.85   22629
                  1        201 2019-01-01 10:55:00  1495.85  1495.95  1492.00  1492.05   18270
                  2        201 2019-01-01 11:05:00  1492.05  1493.90  1488.00  1489.25   31454
                  3        201 2019-01-01 11:15:00  1489.25  1492.00  1489.25  1491.50   18060
                  

                  这篇关于数据帧中从第一行开始的间隔[python 3.6.0]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:计算DataFrame上的百分比 下一篇:具有多列和最大值的 pandas 分组依据

                  相关文章

                    • <bdo id='HVC2D'></bdo><ul id='HVC2D'></ul>

                    1. <tfoot id='HVC2D'></tfoot>
                    2. <i id='HVC2D'><tr id='HVC2D'><dt id='HVC2D'><q id='HVC2D'><span id='HVC2D'><b id='HVC2D'><form id='HVC2D'><ins id='HVC2D'></ins><ul id='HVC2D'></ul><sub id='HVC2D'></sub></form><legend id='HVC2D'></legend><bdo id='HVC2D'><pre id='HVC2D'><center id='HVC2D'></center></pre></bdo></b><th id='HVC2D'></th></span></q></dt></tr></i><div id='HVC2D'><tfoot id='HVC2D'></tfoot><dl id='HVC2D'><fieldset id='HVC2D'></fieldset></dl></div>
                    3. <legend id='HVC2D'><style id='HVC2D'><dir id='HVC2D'><q id='HVC2D'></q></dir></style></legend>

                      <small id='HVC2D'></small><noframes id='HVC2D'>