使用python以及pandas库DataFrame,完成如下的任务。 具体的功能如下: 完成一个与新冠有关的健康记录程序,用于记录、查看家人的身体健康状态,包括: 1、人员的基本信息 每人有且只有一条,基本信息应该有: 人员id,整数,可以从1开始,不能和其他人重复; 人员姓名,字符串; 当前状况,可能是以下的几种状态之一:阴,阳,阳康。可以用整数的不同值来表示,在展示的时候再换成具体的文字信息。也可以直接用上述几个状态的字符串来表示。 2、人员体温血氧监测记录 每人可能有多条不同时间的监测记录,也可能无记录。是否记录,以及多长间隔记录一次由使用者决定。 单条监测记录,应该包括的信息有: 人员id,要与基本信息中的人员id一致(这样才能进行关联); 时间戳,一个整数,可以是1970年到现在经历的秒数,也可以是类似2022122519这样的可直接阅读出时间信息的字符串; 体温,浮点数; 血氧值,整数,0~100间 功能要求: 1、录入功能 录入人员信息,修改人员信息(比如从阴改阳,阳改阳康) 录入体温血氧监测记录 2、查看功能 查看所有人员的基本信息 查看某个人员的所有体温血氧监测记录 查看某个人员的最高体温、最低血氧等 其他你认为可以加上的功能
时间: 2024-04-23 16:23:53 浏览: 63
好的,我理解了你的问题。对于你的需求,我可以给你提供一个基本的解决方案,你可以根据自己的需要进行修改和扩展。
首先,你需要创建一个基于 Pandas 的 DataFrame,然后通过编写函数实现录入和查询功能。具体的代码如下:
```python
import pandas as pd
# 创建 DataFrame
df = pd.DataFrame(columns=['id', 'name', 'status'])
# 录入人员信息
def add_person(id, name, status):
global df
# 判断 id 是否已存在
if id in df['id'].values:
print('ID already exists!')
return
# 添加新的一行
df = df.append({'id': id, 'name': name, 'status': status}, ignore_index=True)
# 修改人员信息
def modify_person(id, status):
global df
# 判断 id 是否存在
if id not in df['id'].values:
print('ID does not exist!')
return
# 修改状态
df.loc[df['id'] == id, 'status'] = status
# 录入监测记录
def add_record(id, timestamp, temperature, blood_oxygen):
global df
# 判断 id 是否存在
if id not in df['id'].values:
print('ID does not exist!')
return
# 添加新的一行
row = {'id': id, 'timestamp': timestamp, 'temperature': temperature, 'blood_oxygen': blood_oxygen}
df = df.append(row, ignore_index=True)
# 查看所有人员的基本信息
def show_all_people():
global df
print(df[['id', 'name', 'status']])
# 查看某个人员的所有监测记录
def show_all_records(id):
global df
# 判断 id 是否存在
if id not in df['id'].values:
print('ID does not exist!')
return
# 筛选出该 id 的所有记录并显示
records = df.loc[df['id'] == id, ['timestamp', 'temperature', 'blood_oxygen']]
print(records)
# 查看某个人员的最高体温、最低血氧等
def show_person_stats(id):
global df
# 判断 id 是否存在
if id not in df['id'].values:
print('ID does not exist!')
return
# 筛选出该 id 的所有记录并计算相关统计量
records = df.loc[df['id'] == id, ['temperature', 'blood_oxygen']]
print('Max temperature:', records['temperature'].max())
print('Min blood oxygen:', records['blood_oxygen'].min())
```
以上代码中,我们使用 Pandas 创建了一个空的 DataFrame,并定义了四个函数,分别实现了录入、修改和查询的功能。其中,`add_person()`、`modify_person()` 和 `add_record()` 分别用于录入人员信息、修改人员信息和录入监测记录;`show_all_people()`、`show_all_records()` 和 `show_person_stats()` 分别用于查看所有人员的基本信息、某个人员的所有监测记录和某个人员的最高体温、最低血氧等。
你可以根据自己的需要对这些函数进行修改和扩展,比如添加删除人员信息和监测记录的功能,或者添加查询所有人员的平均体温、血氧等统计量的功能。
阅读全文