簡體   English   中英

Python DataFrame:基於另一列的出現次數

[英]Python DataFrame: count of occurances based on another column

我有一個 Python 團隊數據框和他們取得的成績(1、2 或 3)

團隊 地方
一個 1
一個 1
一個 1
一個 2
一個 3
一個 1
一個 1
2
2

我想操縱 df 看起來像下面這樣。 所以這是一個團隊達到每個地方的頻率。

團隊 1 2 3
一個 5 1 1
0 2 0

您可以獲取每個組的值計數,然后取消堆疊索引。 rest 正在轉動以獲得您的確切 output。

(df.groupby('Team')['place']
   .value_counts()
   .unstack(fill_value=0)
   .reset_index()
   .rename_axis(None, axis=1)
) 

您可以使用pandas.crosstab

pd.crosstab(df['Team'], df['place'])

或簡單的groupby + sizeunstack

(df.groupby(['Team', 'place']).size()
   .unstack('place', fill_value=0)
)

output:

place  1  2  3
Team          
A      5  1  1
B      0  2  0
全部作為列
(pd.crosstab(df['Team'], df['place'])
   .rename_axis(columns=None)
   .reset_index()
)

output:

  Team  1  2  3
0   A   5  1  1
1   B   0  2  0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM