繁体   English   中英

Python 中的 Pandas 数据框。 比例和转置

[英]Pandas Data Frame in Python. Proportions and Transpose

我在 Pandas 中有以下数据框。 这个想法是根据变量 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

使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM