使用python以及pandas库DataFrame,完成如下的任务。 具体的功能如下: 完成一个与新冠有关的健康记录程序,用于记录、查看家人的身体健康状态,包括: 1、人员的基本信息 每人有且只有一条,基本信息应该有: 人员id,整数,可以从1开始,不能和其他人重复; 人员姓名,字符串; 当前状况,可能是以下的几种状态之一:阴,阳,阳康。可以用整数的不同值来表示,在展示的时候再换成具体的文字信息。也可以直接用上述几个状态的字符串来表示。 2、人员体温血氧监测记录 每人可能有多条不同时间的监测记录,也可能无记录。是否记录,以及多长间隔记录一次由使用者决定。 单条监测记录,应该包括的信息有: 人员id,要与基本信息中的人员id一致(这样才能进行关联); 时间戳,一个整数,可以是1970年到现在经历的秒数,也可以是类似2022122519这样的可直接阅读出时间信息的字符串; 体温,浮点数; 血氧值,整数,0~100间 功能要求: 1、录入功能 录入人员信息,修改人员信息(比如从阴改阳,阳改阳康) 录入体温血氧监测记录 2、查看功能 查看所有人员的基本信息 查看某个人员的所有体温血氧监测记录 查看某个人员的最高体温、最低血氧等 其他你认为可以加上的功能
时间: 2024-04-23 16:25:48 浏览: 57
好的,这是一个比较完整的需求,需要使用到Python和Pandas库。以下是实现这个任务的代码:
```python
import pandas as pd
class HealthRecord:
def __init__(self):
self.df = pd.DataFrame(columns=['id', 'name', 'status'])
self.record_df = pd.DataFrame(columns=['id', 'timestamp', 'temperature', 'blood_oxygen'])
def add_person(self, id, name, status):
self.df = self.df.append({'id': id, 'name': name, 'status': status}, ignore_index=True)
def update_person_status(self, id, new_status):
self.df.loc[self.df['id'] == id, 'status'] = new_status
def add_record(self, id, timestamp, temperature, blood_oxygen):
self.record_df = self.record_df.append({'id': id, 'timestamp': timestamp, 'temperature': temperature, 'blood_oxygen': blood_oxygen}, ignore_index=True)
def get_all_person_info(self):
return self.df
def get_person_record(self, id):
return self.record_df.loc[self.record_df['id'] == id]
def get_person_max_min(self, id):
person_record = self.get_person_record(id)
max_temp = person_record['temperature'].max()
min_blood_oxygen = person_record['blood_oxygen'].min()
return {'max_temp': max_temp, 'min_blood_oxygen': min_blood_oxygen}
# 测试代码
record = HealthRecord()
record.add_person(1, 'Tom', '阳')
record.add_person(2, 'Jerry', '阴')
record.add_person(3, 'Lucy', '阳康')
record.update_person_status(1, '阳康')
record.add_record(1, '2022-01-01', 36.5, 98)
record.add_record(1, '2022-01-02', 37.1, 97)
record.add_record(2, '2022-01-01', 37.2, 99)
record.add_record(2, '2022-01-02', 37.3, 98)
record.add_record(3, '2022-01-01', 36.8, 97)
record.add_record(3, '2022-01-02', 36.9, 98)
print(record.get_all_person_info())
print(record.get_person_record(1))
print(record.get_person_max_min(1))
```
这段代码实现了一个名为`HealthRecord`的类,它包含了录入和查看基本信息、体温血氧监测记录以及其他功能。在测试代码中,我们创建了一个`HealthRecord`对象,并调用了其中的函数,输出了相应的结果。
值得注意的是,这段代码只是一个基本实现,你可能需要对其进行更改以适应具体的需求。
阅读全文