python - 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 链接,以便获得所需的输出。
解决方案
您可以使用 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
推荐阅读
- ruby - 红宝石中的硒。如何在 img 标签中获取 alt 属性中的文本?
- stata - 如何通过Stata中的描述符变量找到变量的百分位数?
- r - 将列中以冒号和逗号分隔的字符串拆分为 R 中的不同列
- python - 如何删除列表中的特定值?
- python - python在范围之间填充
- powershell - 如何使用itextsharp制作powershell编辑多个pdf
- python - 删除数据集中的符号
- python - Money bot 未添加导致 discord.py 的收入
- python - 如何在 Django 框架中对具有自定义权限的 POST 请求进行单元测试?
- python - Python Excel字符串列差异