繁体   English   中英

字典列表中的Python计数和键的平均值

[英]Python count and average value of keys in list of dict

我有带people_idroom_id列的文件。 我将所有文件读入字典。

people_id room_id
1   8
2   32
3   8
4   47
5   12
6   8

和代码

report_keys = ['people_id', 'room_id']
report = []
with open("file.txt") as f:
    for line in f:
        line = line.strip().split('\t')
        d = dict(zip(report_keys, line))
        report.append(d)

我想计算每个房间的人数。 例如。 for room_id 8这个房间的人数= 3和房间平均人数。

输出:

Room_id 8 = 3 people
Room_id 32 = 1 people
Room_id 47 = 1 people
Room_id 12 = 1 people

登记入住一间客房的平均人数。

我尽力做到这一点

for key, value in report:
    print(key, len([item for item in value if item]))

但是我的代码只打印相同的值

我认为您可以更改代码阅读文件的方式

report = {}
with open("file.txt") as f:
    for line in f:
        line = line.strip().split('\t')
        report[line[1]] = report.get(line[1],0) + 1

那么使用pandas

import pandas as pd

df = pd.read_csv("file.txt")

df.groupby('room_id').size().to_dict()
{8: 3, 32: 1, 12: 1, 47: 1}

暂无
暂无

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

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