Python 3.x 数据透视表错误:在Python中,Grouper和axis的长度必须相同

Python 3.x 数据透视表错误:在Python中,Grouper和axis的长度必须相同,python-3.x,pandas,pivot,pandas-groupby,Python 3.x,Pandas,Pivot,Pandas Groupby,我正在尝试将每小时索引的数据转换为以每小时值为列的每日索引数据 示例数据hourlyvol: 2010-01-02 03:00:00 0.193571 2010-01-02 04:00:00 0.262009 2010-01-02 05:00:00 0.179023 2010-01-02 06:00:00 0.132121 2010-01-02 07:00:00 0.146968 所需的输出格式(不是相同的值,因为我是从另一个可用的脚本粘贴的): 当前代码:

我正在尝试将每小时索引的数据转换为以每小时值为列的每日索引数据

示例数据
hourlyvol

2010-01-02 03:00:00    0.193571 
2010-01-02 04:00:00    0.262009
2010-01-02 05:00:00    0.179023 
2010-01-02 06:00:00    0.132121
2010-01-02 07:00:00    0.146968
所需的输出格式(不是相同的值,因为我是从另一个可用的脚本粘贴的):

当前代码:

hourlyvol=price.resample('H',label='left',closed='left').apply(vol).ffill() #works fine
pivot=pd.pivot_table(pd.DataFrame(hourlyvol,columns=["vol"]),\
    index=hourlyvol.index.date,\
    columns=hourlyvol.index.hour,\
    values="vol") # Throws error
回溯:

Traceback (most recent call last):
  File "c:/Users/aytekin/OneDrive - Groupe La Francaise/Bureau/KA/commo amine/intraday/intraday_vol.py", line 29, in <module>
    values="vol")
  File "c:\Users\aytekin\OneDrive - Groupe La Francaise\Bureau\KA\Venv\lib\site-packages\pandas\core\reshape\pivot.py", line 100, in pivot_table      
    grouped = data.groupby(keys, observed=observed)
  File "c:\Users\aytekin\OneDrive - Groupe La Francaise\Bureau\KA\Venv\lib\site-packages\pandas\core\frame.py", line 5810, in groupby
    observed=observed,
  File "c:\Users\aytekin\OneDrive - Groupe La Francaise\Bureau\KA\Venv\lib\site-packages\pandas\core\groupby\groupby.py", line 409, in __init__       
    mutated=self.mutated,
  File "c:\Users\aytekin\OneDrive - Groupe La Francaise\Bureau\KA\Venv\lib\site-packages\pandas\core\groupby\grouper.py", line 625, in get_grouper    
    if not isinstance(gpr, Grouping)
  File "c:\Users\aytekin\OneDrive - Groupe La Francaise\Bureau\KA\Venv\lib\site-packages\pandas\core\groupby\grouper.py", line 256, in __init__       
    self.grouper = _convert_grouper(index, grouper)
  File "c:\Users\aytekin\OneDrive - Groupe La Francaise\Bureau\KA\Venv\lib\site-packages\pandas\core\groupby\grouper.py", line 655, in _convert_grouper
    raise ValueError("Grouper and axis must be same length")
ValueError: Grouper and axis must be same length
回溯(最近一次呼叫最后一次):
文件“c:/Users/aytekin/OneDrive-Groupe La Francaise/Bureau/KA/commo amine/intraday/intraday_vol.py”,第29行,in
值=“vol”)
pivot_表格第100行的文件“c:\Users\aytekin\OneDrive-Groupe La Francaise\Bureau\KA\Venv\lib\site packages\pandas\core\Reformate\pivot.py”
分组=数据。分组依据(键,观察到=观察到)
文件“c:\Users\aytekin\OneDrive-Groupe La Francaise\Bureau\KA\Venv\lib\site packages\pandas\core\frame.py”,第5810行,在groupby中
观察到的,
文件“c:\Users\aytekin\OneDrive-Groupe La Francaise\Bureau\KA\Venv\lib\site packages\pandas\core\groupby\groupby.py”,第409行,在
突变的,
文件“c:\Users\aytekin\OneDrive-Groupe La Francaise\Bureau\KA\Venv\lib\site packages\pandas\core\groupby\grouper.py”,第625行,在get\u grouper中
如果不存在(探地雷达,分组)
文件“c:\Users\aytekin\OneDrive-Groupe La Francaise\Bureau\KA\Venv\lib\site packages\pandas\core\groupby\grouper.py”,第256行,在
self.grouper=\u convert\u grouper(索引,grouper)
文件“c:\Users\aytekin\OneDrive-Groupe La Francaise\Bureau\KA\Venv\lib\site packages\pandas\core\groupby\grouper.py”,第655行,在grouper中
raise VALUE ERROR(“Grouper和axis的长度必须相同”)
ValueError:Grouper和axis的长度必须相同

我已经看过了,但我已经在创建datafarame了。没有明确的答案。

为此,您可以使用
设置索引

(hourlyvol['vol']
    .set_index([hourlyvol.index.date, hourlyvol.index.hour])
    .unstack()
)

为此,您可以使用
设置索引

(hourlyvol['vol']
    .set_index([hourlyvol.index.date, hourlyvol.index.hour])
    .unstack()
)

如果要使用透视表

hourlyvol['Hour_of_day']=hourlyvol.index.hour
hourlyvol['Date']=hourlyvol.index.date
hourlyvol_pivot=hourlyvol.pivot_table(index='Date',columns='Hour_of_day')

如果要使用透视表

hourlyvol['Hour_of_day']=hourlyvol.index.hour
hourlyvol['Date']=hourlyvol.index.date
hourlyvol_pivot=hourlyvol.pivot_table(index='Date',columns='Hour_of_day')

这是一个替代方案,但我仍然不理解错误。这是一个替代方案,但我仍然不理解错误。这也可以工作,但不能解释错误。我的数据集很大(GB),我不想让脚本再慢一点。这也可以工作,但不能解释错误。我的数据集很大(GB),我不想让脚本再慢一点。