Pandas 数据框内转置
我现在有一个数据集:
animal age count
dogs 1 49
2 134
3 147
4 154
cats 1 189
2 254
3 259
4 261
我想把年龄这一列转换成四个不同的年龄列,每个列代表一个年龄段:
animal age1 age2 age3 age4
dogs 49 134 147 154
cats ....................
我试过用 df.T 和 df.transpose(),但它们都返回了我原来的那一列。
1 个回答
7
你可以使用 pd.pivot 这个功能:
In [25]: result = df.pivot(index='animal', columns='age', values='count')
In [26]: result
Out[26]:
age 1 2 3 4
animal
cats 189 254 259 261
dogs 49 134 147 154
In [27]: result.columns = ['age{:d}'.format(col) for col in result.columns]
In [28]: result
Out[28]:
age1 age2 age3 age4
animal
cats 189 254 259 261
dogs 49 134 147 154