[英]Python how to count unique value by id from a csv file
我有以下 csv 文件:
ID A
1 a
1 b
2 a
3 a
3 b
3 b
4 d
我想按 ID 计算 A 列中的唯一值,
我如何获得这样的输出:
ID Unique_Count_A_by_ID
1 2
2 1
3 2
4 1
我试过了:
import csv
file = open('test.csv',newline='')
data = csv.reader(cfile)
ID_list=[]
for line in data:
ID_list.append(str(line[0]))
unique_ID = list(set(ID_list))
count = []
for i in unique_ID:
count.append(ID_list.count(i))
但这与 A 列无关。如何将 A 列与 ID 联系起来,以便获得所需的输出。
您可以使用熊猫数据框。
import pandas as pd
df = pd.read_csv('you_file.csv')
print(print(df.groupby('ID').agg({"A": "nunique"})))
结果:
ID
1 2
2 1
3 2
4 1
使用pandas
和groupby
+ nunique
:
import pandas as pd
df = pd.read_csv('test.csv')
df.groupby('ID')['A'].nunique()
输出:
ID
1 2
2 1
3 2
4 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.