-1

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

4

2 回答 2

1

您可以使用 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
于 2021-09-26T21:41:21.920 回答
0

使用pandasgroupby+ 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
于 2021-09-26T21:38:53.070 回答