Python字典和字典的列表中的键的平均值
问题描述:
我有people_id
和room_id
列的文件。我将所有文件读入字典。Python字典和字典的列表中的键的平均值
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)
我想指望每间房的人。例如。对于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}
+0
我只能使用标准库 – lukassz
所需的输出是什么?这将工作:'print(key,sum(int(x)for x in value))'用于count和'print(key,sum(int(x)for x in value)/ len(value))'for平均? –
每间客房的人数和平均人数。 – lukassz
请发表一个当前和期望输出的例子。 –