- 输入 表格 * *
| 个人 电脑|收入|学历|1 岁 至 20 岁|热 交换 器|
| - -| - -| - -| - -| - -|
| a1001 型|收入 _1|教育 _1|一 个|一 个|
| a1003 型|收入 _2|教育 _2|第 0 页|2 个|
| a1001 型|收入 _3|教育 _2|五 个|2 个|
| a1002 型|收入 _2|教育 _2|一 个|五 个|
| a1003 型|收入 _1|教育 _2|三 个|四 个|
- 所 需 输出 * *
| 个人 电脑|收入 _1|收入 _2|收入 _3|教育 _1|教育 _2| 1 岁 至 20 岁|热 交换 器|
| - -| - -| - -| - -| - -| - -| - -| - -|
| a1001 型|一 个|第 0 页|一 个|一 个|一 个|六 个|1.5 分|
| a1002 型|第 0 页|一 个|第 0 页|第 0 页|一 个|一 个|五 个|
| a1003 型|一 个|一 个|第 0 页|第 0 页|2 个|三 个|三 个|
- pcd 为 指数 , 收入 1 、 收入 2 、 收入 3 、 教育 1 、 教育 2 、 年龄 合计 为 总和 , TG 合计 为 平均 值 。 * * *
pd.pivot_table(df, index=['pcd', 'age1to_20'],
aggfunc={'INCOME':sum,'Education'=sum,'age1to_20'=sum,'TG':avg},fill_value=0)
中 的 每 一 个
已 尝试 上述 代码 , 但 未 成功
3条答案
按热度按时间hs1ihplo1#
您可以先使用
melt
,然后使用pivot_table
进行整形,最后使用groupby.agg
合并“pcd”:输出量:
mctunoxg2#
或者,可以使用交叉表和groupby:
8yparm6h3#
您还需要指定值的来源以及哪些列将指定新的列名。
而且,我不太清楚你的价值观是从哪里来的。
但它看起来像这样,例如,