[英]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
+ size
和unstack
:
(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.