在python中查找列表中唯一数据的平均值
数据列如下:城市、名字、姓氏、性别、年龄、体重。客户可以多次输入,并以不同的权重记录 我通过以下操作唯一地识别了客户和性别: 现在,我想找到独特客户的平均年龄。不知道怎么做? 另外,我想报告有多少客户被多次称重。客户将被列为记录体重的次数。这是我的班级在python中查找列表中唯一数据的平均值,python,filter,average,Python,Filter,Average,数据列如下:城市、名字、姓氏、性别、年龄、体重。客户可以多次输入,并以不同的权重记录 我通过以下操作唯一地识别了客户和性别: 现在,我想找到独特客户的平均年龄。不知道怎么做? 另外,我想报告有多少客户被多次称重。客户将被列为记录体重的次数。这是我的班级 class clients: def __init__(self, city, name, gender, age, weight): self.City = city self.Name = name
class clients:
def __init__(self, city, name, gender, age, weight):
self.City = city
self.Name = name
self.Gender = gender
self.Age = age
self.Weight = weight
对该主题的部分回答:
类客户端:
定义初始(自我、城市、名、姓、性别、年龄、体重、uuid):
self.City=城市
self.FirstName=名字
self.LastName=姓氏
self.Gender=性别
自我。年龄=年龄
自重=重量
self.UUID=UUID
定义(自身、其他):
如果self.City==其他.City和\
self.FirstName==其他.FirstName和\
self.LastName==其他.LastName和\
self.Gender==其他.Gender和\
self.Age==其他.Age和\
自身重量==其他重量和\
self.UUID==其他.UUID:
返回真值
返回错误
定义散列(自我):
返回散列((self.City、self.FirstName、self.LastName、self.Gender、self.Age、self.Weight、self.UUID))
导入uuid
测量值列表=[]
添加(客户端(“Spamburg”、“Foo”、“Bar”、“Apache”、31、80、uuid.uuid4()))
测量值列表。附加(客户端(“Spamburg”、“Foo”、“Bar”、“Apache”、31、82,测量值列表[0].UUID))\35;新的重量测量值
测量值列表。追加(客户端(“Spamburg”、“Foo”、“Bar”、“Apache”、32、83、测量值列表[0].UUID))#新的体重测量值,年龄更改
测量值列表。追加(客户端(“Spamville”、“Foo”、“Bar”、“Apache”、33、83,测量值列表[0].UUID))\35;新的重量测量值,客户端已移动
测量值列表.append(客户端(“Spamville”、“Foo”、“Bar”、“Apache”、33、83、测量值列表[0].UUID))#重复测量值
测量值列表。追加(客户(“Spamville”、“Foo”、“Bar”、“Hind”、33、83、测量值列表[0].UUID”)#客户发生性别变化
测量值列表。追加(客户(“Spamville”、“Foo”、“桑给巴尔”、“Hind”、33、83,测量值列表[0].UUID))#客户结婚并更改了姓氏
列出所有度量值。追加(客户端(“Spamville”、“Foo-Too”、“Bar-None”、“Hind”、23、63、uuid.uuid4()))#第二个唯一客户端
列出度量值。追加(客户端(“Spamville”、“Foo Three”、“Bar Some”、“Apache”、18、60、uuid.uuid4())#第三个唯一客户端
请注意,除了UUID之外,每个客户的所有内容实际上都可能发生变化
set_of_clients=set([c.UUID for c in list_of_measurements])将只包含唯一的UUID
measurements\u dict={uid:sum(如果c.UUID==uid,则表示度量值列表中的c为1),表示客户端集合中的uid}
列出超过一个度量值的客户列表=[uid表示uid,m表示度量值中的项目(如果m>1)]
打印(列出多个测量值的客户列表)
list_of_deduplicated_measurements=list(set(list_of_measurements))
从统计导入平均值
ages_dict={uid:max(如果c.UUID==uid,则c.Age表示_度量值列表中的c)表示_客户端集合中的uid}
平均年龄=平均值(年龄数值()
1。您是否可以指定用于决定客户机“唯一性”的属性集,因为您写道同一客户机可能会被多次列出?2.同一客户是否可能有历史数据(不同年龄)?3.客户机数据是如何存储的?它是一个列表,还是…客户端名称是唯一的?你们班的名字不好;这是体重记录,不是“客户”