首页 > 解决方案 > Python如何通过csv文件中的id计算唯一值

问题描述

我有以下 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 链接,以便获得所需的输出。

标签: python

解决方案


您可以使用 pandas 数据框。

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

推荐阅读