我有一个像第一个表一样的数据集,每一行都有一个性别值。
输入图片描述
我想要一个输出表,像第二个屏幕截图,性别不是一个列。其余列的所有数据都用&;female &;分隔开和";male"具有两个主列和一个汇总汇总列。我怎样才能在熊猫身上得到这些呢?
输入图片描述
您需要使用pandas.pivot
,这与Excel中的方式相似。下面的代码将为您提供所需的内容。我在这里将空格(NaN
)重命名为0
。
table = pd.pivot_table(
df,
values='score',
index=['job'],
columns=['gender'],
aggfunc=np.sum)
table.columns.name = None # remove categories
table = table.reset_index()
table = table.fillna(0)
table ['Total Score'] = table.female + table.male
table
job female male Total Score
0 Accountant 358.0 0.0 358.0
1 Engineer 123.0 230.0 353.0
2 Lawyer 320.0 103.0 423.0
3 Manager 294.0 490.0 784.0
4 Sales 0.0 82.0 82.0
5 Waiter 524.0 436.0 960.0