Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pivot\u表引发Pivot表中未使用的行的KeyError_Python_Pandas_Pandas Groupby_Pivot Table - Fatal编程技术网

Python Pivot\u表引发Pivot表中未使用的行的KeyError

Python Pivot\u表引发Pivot表中未使用的行的KeyError,python,pandas,pandas-groupby,pivot-table,Python,Pandas,Pandas Groupby,Pivot Table,我正在使用Pivot_表总结我的数据的一些信息。然而,我一直在获取pivot_表调用中未使用的列的Keyerror,我似乎无法找出错误所在。我尝试过其他职位提出的许多解决方案,但没有一个有效 所以,我真的需要一些专家的帮助 这是我的数据框: H1 H2 H3 H4 H5 H6 H7 H8 H10 RA1 RB1, H2 2020-07-25 11:30 60 1764 RG1 RH1 RJ1 RA2 RB2, H

我正在使用Pivot_表总结我的数据的一些信息。然而,我一直在获取pivot_表调用中未使用的列的Keyerror,我似乎无法找出错误所在。我尝试过其他职位提出的许多解决方案,但没有一个有效

所以,我真的需要一些专家的帮助

这是我的数据框:

H1   H2       H3         H4     H5  H6     H7    H8    H10
RA1  RB1, H2 2020-07-25  11:30  60  1764   RG1   RH1   RJ1
RA2  RB2, H2 2020-07-25  11:30  60  1774   RG2   RH2   RJ2
RA3  RB3, H2 2020-07-25  11:30  60  1791   RG3   RH3   RJ3
RA4  RB4, H2 2020-07-25  11:30  35  1806   RG4   RH4   RJ4
RA5  RB1, H3 2020-07-25  12:30  35  1771   RG5   RH5   RJ5
RA6  RB2, H3 2020-07-25  12:45  60  1813   RG6   RH6   RJ6
RA7  RB3, H3 2020-07-25  13:00  60  1789   RG7   RH7   RJ7
RA8  RB4, H3 2020-07-25  13:00  60  1790   RG8   RH8   RJ8
RA9  RB1, H4 2020-07-25  13:00  60  1808   RG9   RH9   RJ9
RA10  RB2, H4 2020-07-25  14:00  60  1822  RG10  RH10  RJ10
这是我的密码:

import pandas as pd
import numpy as np
import os, shutil, inspect, xlsxwriter

from os import listdir
from os.path import isfile, join

class GetMyData():
    def __init__(self, directory):
        self.datafl = os.path.join(directory, 'data.xlsx')
        self.pivotfl = os.path.join(directory, 'pivot.xlsx')

    def getDataFrame(self):
        try:
            df = pd.DataFrame()
            read_order = ('H1', 'H2', 'H3', 'H4', 'H5','H6', 'H7',\ 
                          'H8','H10')

            # Read Dataframe.
            df = pd.read_excel(self.datafl, usecols=read_order, index_col=None)
            return (df)        
        except (Exception, FileNotFoundError, IOError) as e:
            print("Function:", inspect.stack()[0][3], "Raised: ", e)

    # Create Pivot Table
    def createPivot(self):
        try: 
            df = pd.DataFrame()

            df = self.getDataFrame()

            df['H3'] = pd.to_datetime(df['H3'], utc=False) - pd.to_timedelta(7, unit='d')
            
            print (df)
            # Summarize the data in Pivot table.
            pivot = pd.pivot_table(df, index=['H1', pd.Grouper(key='H3', freq='W-MON')], columns='H10',\
                margins=True, aggfunc={'H10':np.count_nonzero}).reset_index()
            
            # Write Dataframe to Excel file.
            df.to_excel(self.pivotfl, sheet_name='Result', startrow=0)
        except (Exception, FileNotFoundError, IOError) as e:
            print("Function:", inspect.stack()[0][3], "Raised: ", e)

if __name__ == "__main__":
    data = GetMyData(os.getcwd())
    data.createPivot()
当我运行此代码时,出现以下异常:

Function: createPivot Raised:  'H2'
正如我所说的,我已经尝试了很多方法,比如重置索引和其他解决方案,但它们似乎都不起作用

请让我知道,如果有任何其他我可以尝试或提供您的专家意见,以显示有意义的错误

非常感谢你的帮助


谢谢。

能否提供一些示例输入数据和预期输出(无图像)?请看,谢谢!请注意,不鼓励在SO上使用数据/代码的图像。很抱歉粘贴图像。我减少了我的数据集并将其添加到原始帖子中。如果你能进一步帮助我,请告诉我。非常感谢你的帮助。