python:pandas計算各項出現次數, 並輸出各行數據

今天在工作中遇到一個需求:有一個ABC三列的表,其中A列數據大量重複,且BC列不同。現在需要根據A列的數據,彙總A列去重並輸出重複次數最多的100行(N行)

原始表類似於這樣:

A B
FFFEFFFEFFF 71956 1
FFFF7FFF7FF 28994 2
DFF4DFF4DFF 68109 3
1FF807F8000 63125 4
3FFF7FFF7FF 27084 5
FFFFFFFFFAF 90016 6
FFBFFFBF078 98219 7
1FF03EE33FF 23629 8
CFC0F8FAFCF 72986 9
8FFFF1F1F1E 33263 10
FFFFFFFFFFF 94116 11

 

如果用excel,解決辦法就是做一個透視表,求出A列各項目重複數據次數,然後在vlookup求出各BC列的值即可

但是如果元數據超過了1萬行,電腦會卡死的。

現在通過Python即可30秒求出100萬行,A列的計數項:

解決思路

1、先導入文件  

pd.read_csv  ,設置表頭names,設置分割符號:sep,設置標題行:skiprows

2、求助A列數據的各項目重複次數

loc=da['A'].value_counts()

3、取出前1000行

loc=loc[:N].keys()#前置前N行,加上key是表示只取值,取出A列的那個數據,不加key()就是輸出A列數據+重複次數

4、取出數據,並根據A列去重

C=da.loc[da['A'].isin(loc)]#限制A列在 loc的值內

C=C.drop_duplicates(['A'])#根據A列去重

5、保存

C.to_csv("22.csv",encoding='utf-8')

不知道這些思路是否對你有幫助,完整代碼可見:

http://bbs.bigdata.zhaotongzhuo.cn/?p=20

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章