簡體   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