簡體   English   中英

Python熊貓統計每列中的出現次數

[英]Python pandas count occurrences in each column

我是熊貓新手。 有人可以幫助我計算每一列的值頻率嗎?

數據幀:

id|flag1|flag2|flag3|  
---------------------
1 |  1  |   2 |   1 |  
2 |  3  |   1 |   1 |  
3 |  3  |   4 |   4 |  
4 |  4  |   1 |   4 |  
5 |  2  |   3 |   2 |  

我想要類似的東西

id|flag1|flag2|flag3|  
---------------------
1 |  1  |   2 |   2 |  
2 |  1  |   1 |   1 |  
3 |  2  |   1 |   0 |  
4 |  1  |   1 |   2 |  

說明-id 1在flag1中具有1個值,在flag2中具有2個值,在flag3中具有2個值。

首先通過filter或刪除id列僅過濾flag列,然后apply函數value_counts ,最后將NaN替換為0並強制轉換為int

df = df.filter(like='flag').apply(lambda x: x.value_counts()).fillna(0).astype(int)
print (df)
   flag1  flag2  flag3
1      1      2      2
2      1      1      1
3      2      1      0
4      1      1      2

要么:

df = df.drop('id', 1).apply(lambda x: x.value_counts()).fillna(0).astype(int)
print (df)
   flag1  flag2  flag3
1      1      2      2
2      1      1      1
3      2      1      0
4      1      1      2

謝謝巴拉斯的建議:

df = df.filter(like='flag').apply(pd.Series.value_counts()).fillna(0).astype(int)

暫無
暫無

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

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