Python中的Pandas数据框。比例与移调

时间:2019-03-13 12:44:10

标签: python pandas dataframe

我在熊猫中有以下数据框。想法是根据变量TYPE的比例生成一个附加的数据帧ID,并将其转换为列。任何帮助表示赞赏!

d = {'ID': [1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2], 'TYPE': ['A','A','A','B','B','B','B','C','C','C','A','A','B','B','B','B','B','B']}
df = pd.DataFrame(data=d)
df


    ID   A       B       C
    1   0.30    0.40    0.3
    2   0.25    0.75    0.0

1 个答案:

答案 0 :(得分:1)

SeriesGroupBy.value_counts与参数normalize=True一起使用,并通过Series.unstack重塑形状:

df = df.groupby('ID')['TYPE'].value_counts(normalize=True).unstack(fill_value=0)
print (df)
TYPE     A     B    C
ID                   
1     0.30  0.40  0.3
2     0.25  0.75  0.0

然后根据需要在index中添加列:

df = df.rename_axis(None, axis=1).reset_index()
print (df)
   ID     A     B    C
0   1  0.30  0.40  0.3
1   2  0.25  0.75  0.0