dict列表中键的Python计数和平均值
我有个人id和房间id列的文件。我把所有的文件都读入字典dict列表中键的Python计数和平均值,python,Python,我有个人id和房间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(
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)
我想计算每个房间的人数。对于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
那么期望的输出是什么?这样行吗:printkey,sumintx代表x的值代表计数和printkey,sumintx代表x的值/lenvalue代表平均值?每个房间的人数和平均值。请发布一个当前和期望输出的示例。@AlexRosenfeld我更新了我的问题当我打印出你的报告时,我得到了一个列表,你能确认这是预期的吗?:[{'people_id':'people_id room_id'},{'people_id':'18'},{'people_id':'232'},{'people_id':'38'},{'people_id':'447'},{'people_id':'512'},{'people_id':'68'}我只能使用标准图书馆
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