具有多索引的 pd.DataFrame 的摘要行
Summary Row for a pd.DataFrame with multiindex
我有一个使用 pandas 创建的 multiIndex 数据框,与此类似:
nest = {'A1': dfx[['aa','bb','cc']],
'B1':dfx[['dd']],
'C1':dfx[['ee', 'ff']]}
reform = {(outerKey, innerKey): values for outerKey, innerDict in nest.items() for innerKey, values in innerDict.items()}
dfzx = pd.DataFrame(reform)
我想要实现的是在数据框的末尾添加一个新行,其中包含新索引代表的三个类别的总计摘要 ( A1, B1, C1).
我已经尝试使用 df.loc(在这种情况下我通常会使用的),但出现错误。同样适用于 iloc.
a1sum = dfzx['A1'].sum().to_list()
a1sum = sum(a1sum)
b1sum = dfzx['B1'].sum().to_list()
b1sum = sum(b1sum)
c1sum = dfzx['C1'].sum().to_list()
c1sum = sum(c1sum)
totalcat = a1sum, b1sum, c1sum
newrow = ['Total', totalcat]
newrow
dfzx.loc[len(dfzx)] = newrow
ValueError: cannot set a row with mismatched columns
#Alternatively
newrow2 = ['Total', a1sum, b1sum, c1sum]
newrow2
dfzx.loc[len(dfzx)] = newrow2
ValueError: cannot set a row with mismatched columns
我该如何修正这个错误?或者还有其他功能可以让我继续吗?
注意:DF注定要移动到一个Excel文件上(我用的是ExcelWriter)
我最终想要达到的结果类型是这一种(灰色行“SUM”
我自己想出了一种解决方案。
我在 Pandas 中创建了一个包含摘要的单独 DataFrame。
我使用 ExcelWriter 将两个数据框放在同一个 excel 工作表上。
从技术上讲,可以在 Excel 中设置样式和格式数据(xlsxwriter 或 framestyle 似乎是流行的模块)。或者应该手动执行此操作。
我有一个使用 pandas 创建的 multiIndex 数据框,与此类似:
nest = {'A1': dfx[['aa','bb','cc']],
'B1':dfx[['dd']],
'C1':dfx[['ee', 'ff']]}
reform = {(outerKey, innerKey): values for outerKey, innerDict in nest.items() for innerKey, values in innerDict.items()}
dfzx = pd.DataFrame(reform)
我想要实现的是在数据框的末尾添加一个新行,其中包含新索引代表的三个类别的总计摘要 ( A1, B1, C1).
我已经尝试使用 df.loc(在这种情况下我通常会使用的),但出现错误。同样适用于 iloc.
a1sum = dfzx['A1'].sum().to_list()
a1sum = sum(a1sum)
b1sum = dfzx['B1'].sum().to_list()
b1sum = sum(b1sum)
c1sum = dfzx['C1'].sum().to_list()
c1sum = sum(c1sum)
totalcat = a1sum, b1sum, c1sum
newrow = ['Total', totalcat]
newrow
dfzx.loc[len(dfzx)] = newrow
ValueError: cannot set a row with mismatched columns
#Alternatively
newrow2 = ['Total', a1sum, b1sum, c1sum]
newrow2
dfzx.loc[len(dfzx)] = newrow2
ValueError: cannot set a row with mismatched columns
我该如何修正这个错误?或者还有其他功能可以让我继续吗?
注意:DF注定要移动到一个Excel文件上(我用的是ExcelWriter)
我最终想要达到的结果类型是这一种(灰色行“SUM”
我自己想出了一种解决方案。
我在 Pandas 中创建了一个包含摘要的单独 DataFrame。
我使用 ExcelWriter 将两个数据框放在同一个 excel 工作表上。
从技术上讲,可以在 Excel 中设置样式和格式数据(xlsxwriter 或 framestyle 似乎是流行的模块)。或者应该手动执行此操作。