Pandas:将数据框重构为列值

MoM*_*oMo 2 python dataframe pandas

我有以下数据框,其中城市是列,年龄是值:

城市1 城市2 城市3
2 14 61
51 73 35
42 38 13
12 75 24
27 42 78

我想创建一个新的数据框,其中列是年龄组,城市是索引,如下所示:

0-20 20-40 40-60 60-80
城市1 2 1 1 0
城市2 1 1 1 0
城市3 1 2 0 2

这可以在熊猫中做到吗?

Sco*_*ton 5

试试这个,使用pd.cut

dfc = pd.cut(df.rename_axis('Cities', axis=1).stack(), 
             bins=[-np.inf,20,40,60,np.inf], 
             labels='0-20 20-40 40-60 60-80'.split(' ')).reset_index()

pd.crosstab(dfc['Cities'], dfc[0]).reset_index()
Run Code Online (Sandbox Code Playgroud)

输出:

0 Cities  0-20  20-40  40-60  60-80
0  City1     2      1      2      0
1  City2     1      1      1      2
2  City3     1      2      0      2
Run Code Online (Sandbox Code Playgroud)