鍍金池/ 問答/Python/ 第一列相同,如何高效計算第二節(jié)列不同個數(shù)

第一列相同,如何高效計算第二節(jié)列不同個數(shù)

目前有上億條如下數(shù)據(jù):

1517021612555,777
1517021612555,778
1517021612553,777
1517021612555,779
1517021612556,779
....
1517021612557,7778
1517021612558,7790
1517021612558,7790

用什么方法可以可以進行如下計算,速度要快:

1517021612555,3
1517021612553,1
1517021612556,3
1517021612557,1
1517021612558,2
回答
編輯回答
擱淺

假如你的文件1.txt, 編碼格式utf-8

import pandas as pd
df = pd.read_csv('1.txt', header=None, sep=',', encoding='utf-8', names=['a', 'b'])
df.groupby('a')['b'].count()    # 非去重版groupby
df.groupby('a')['b'].apply(lambda b: b.drop_duplicates().count()) # 去重版groupby
2018年2月27日 21:42
編輯回答
來守候

可以提供一個方法,不過億級數(shù)據(jù)能不能快,我沒測過。
假設(shè)你的數(shù)據(jù)存在test.txt里:

import pandas as pd
df = pd.read_csv("test.txt", names=["a", "b"])
result = df["b"].groupby(df["a"]).nunique()
2018年4月13日 20:02