我现在有这个数据:
animal age count
dogs 1 49
2 134
3 147
4 154
cats 1 189
2 254
3 259
4 261
我想将年龄列转换为每个年龄段的4个年龄段:
animal age1 age2 age3 age4
dogs 49 134 147 154
cats ....................
我尝试过df.T和df.transpose(),但它们都返回原来的列。
答案 0 :(得分: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