我有这样的数据帧
bin=[0,5,10]
code sex age
a 1 1
a 1 6
b 1 8
b 2 2
c 2 3
c 1 4
我总结了一下
df.groupby([df.code,df.sex,pd.cut(df.age,bin)]).size().unstack().stack().fillna(0)
我得到的结果如下
code sex age
a 1 (0,5] 1
a 1 (5,10] 1
a 2 (0,5] 0
a 2 (5,10] 0
b 1 (0,5] 0
b 1 (5,10] 1
b 2 (0,5] 1
b 2 (5,10] 0
c 1 (0,5] 1
c 1 (5,10] 0
c 2 (0,5] 1
c 2 (5,10] 0
我想把这个df转换成
1 2
a b c a b c
(0,5] 1 0 1 0 1 1
(5,10] 1 0 0 0 0 0
我尝试了stack()或unstack(),但我完全搞不清楚如何转换到上面的数据帧。 我怎样才能改变他们? 有人告诉我如何像这样转换df。你知道吗
您可以用一个^{} 来实现这一点:
在您给定的数据帧上,执行以下操作:
今后,请以允许其他人自己运行的形式提供数据,例如
df.to_records()
或df.to_json()
的输出。你知道吗数据输入:
或
crosstab
相关问题 更多 >
编程相关推荐