繁体   English   中英

Python如何从csv文件中按id计算唯一值

[英]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

使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM