我通过以下pandas交叉表获得了聚合数据帧。但是,我想像这样的列格式:
id ymdh A11 A12 A15 A16
--------------------------------------------------------------
如何将原始数据框更改为我想要的格式?
* Original output dataframe:
df = pd.crosstab(df.ymdh, df_data.id, margins=False,
values=df.duration, dropna=False,
normalize='columns',
aggfunc=[np.sum]).reset_index().fillna(0)
ymdh sum
id A11 A12 A15 A16
----------------------------------------------------------
0 2016040100 0.000000 0.002222 0.049398 0.018077
1 2016040101 0.003354 0.004141 0.078531 0.015131
2 2016040102 0.001397 0.002424 0.000633 0.001473
答案 0 :(得分:1)
我认为sum
需要crosstab
:
df = pd.crosstab(df.ymdh, df_data.id, margins=False,
values=df.duration, dropna=False,
normalize='columns',
aggfunc='sum').reset_index().fillna(0)
答案 1 :(得分:0)
对我来说,这个问题的话题(截至2019-08-20:将pandas crossstab数据框更改为纯表格格式)听起来颇具误导性。同样,有600多个人已经看过这个问题,也许他们也在寻找其他东西。
如果您希望将交叉表转换为堆叠的数据框,请查看以下讨论:Converting a pandas crosstab into a stacked dataframe
与堆叠数据框交叉表的示例可以是具有两列的常规表:
col-1: consists of row labels,
col-2: consists of column labels of the crosstab.