使用python以及pandas库DataFrame,完成如下的任务。此任务来源于C语言实训。 具体的功能如下: 完成一个与新冠有关的健康记录程序,用于记录、查看家人的身体健康状态,包括: 1、人员的基本信息 每人有且只有一条,基本信息应该有: 人员id,整数,可以从1开始,不能和其他人重复; 人员姓名,字符串; 当前状况,可能是以下的几种状态之一:阴,阳,阳康。可以用整数的不同值来表示,在展示的时候再换成具体的文字信息。也可以直接用上述几个状态的字符串来表示。 2、人员体温血氧监测记录 每人可能有多条不同时间的监测记录,也可能无记录。是否记录,以及多长间隔记录一次由使用者决定。 单条监测记录,应该包括的信息有: 人员id,要与基本信息中的人员id一致(这样才能进行关联); 时间戳,一个整数,可以是1970年到现在经历的秒数,也可以是类似2022122519这样的可直接阅读出时间信息的字符串; 体温,浮点数; 血氧值,整数,0~100间 功能要求: 1、录入功能 录入人员信息,修改人员信息(比如从阴改阳,阳改阳康) 录入体温血氧监测记录 2、查看功能 查看所有人员的基本信息 查看某个人员的所有体温血氧监测记录 查看某个人员的最高体温、最低血氧等 其他你认为可以加上的功能
时间: 2024-04-22 12:26:02 浏览: 101
好的,根据你的要求,我可以给你提供一个基于Python和Pandas库的解决方案。首先,我们需要创建一个包含人员基本信息和体温血氧监测记录的数据框(DataFrame)。可以使用以下代码创建初始数据框:
```python
import pandas as pd
# 创建初始数据框,包含人员基本信息和体温血氧监测记录
data = pd.DataFrame(columns=['id', 'name', 'status', 'time', 'temperature', 'blood_oxygen'])
```
这将创建一个空的数据框,包含以下列:人员id,人员姓名,当前状况,时间戳,体温和血氧值。
接下来,我们可以编写函数来实现录入和查看功能。以下是一个示例函数,用于录入人员信息和监测记录:
```python
def add_data(data, id, name, status, time, temperature, blood_oxygen):
"""
添加人员基本信息和监测记录到数据框中
"""
row = {'id': id, 'name': name, 'status': status, 'time': time, 'temperature': temperature, 'blood_oxygen': blood_oxygen}
data = data.append(row, ignore_index=True)
return data
```
该函数接受数据框和人员基本信息和监测记录的参数,并将其添加到数据框中。使用ignore_index=True参数可以确保每个新行都具有唯一的索引。
以下是一个示例函数,用于查看所有人员的基本信息:
```python
def view_basic_info(data):
"""
查看所有人员的基本信息
"""
basic_info = data[['id', 'name', 'status']].drop_duplicates().reset_index(drop=True)
return basic_info
```
该函数将数据框中的人员基本信息提取出来,并去除重复项。
以下是一个示例函数,用于查看某个人员的所有体温血氧监测记录:
```python
def view_monitoring_records(data, id):
"""
查看某个人员的所有体温血氧监测记录
"""
records = data[data['id'] == id][['time', 'temperature', 'blood_oxygen']]
return records
```
该函数将数据框中指定人员id的所有监测记录提取出来。
以下是一个示例函数,用于查看某个人员的最高体温、最低血氧等:
```python
def view_monitoring_stats(data, id):
"""
查看某个人员的监测记录统计信息
"""
records = data[data['id'] == id][['temperature', 'blood_oxygen']]
stats = {'最高体温': records['temperature'].max(),
'最低体温': records['temperature'].min(),
'平均体温': records['temperature'].mean(),
'最高血氧': records['blood_oxygen'].max(),
'最低血氧': records['blood_oxygen'].min(),
'平均血氧': records['blood_oxygen'].mean()}
return stats
```
该函数将数据框中指定人员id的所有监测记录提取出来,并计算其中的最高体温、最低体温、平均体温、最高血氧、最低血氧和平均血氧。
最后,我们可以编写一个主程序,用于交互式地调用上述函数,实现录入和查看功能。以下是一个示例主程序:
```python
while True:
print('请选择操作:')
print('1. 添加人员基本信息和监测记录')
print('2. 查看所有人员的基本信息')
print('3. 查看某个人员的所有体温血氧监测记录')
print('4. 查看某个人员的最高体温、最低血氧等')
print('5. 退出')
choice = input()
if choice == '1':
print('请输入人员基本信息和监测记录:')
id = int(input('id:'))
name = input('name:')
status = input('status:')
time = input('time:')
temperature = float(input('temperature:'))
blood_oxygen = int(input('blood_oxygen:'))
data = add_data(data, id, name, status, time, temperature, blood_oxygen)
elif choice == '2':
print(view_basic_info(data))
elif choice == '3':
id = int(input('请输入人员id:'))
print(view_monitoring_records(data, id))
elif choice == '4':
id = int(input('请输入人员id:'))
print(view_monitoring_stats(data, id))
elif choice == '5':
break
```
该程序将循环显示操作选项,根据用户的选择调用相应的函数,并通过用户输入来获取所需的参数。用户可以选择输入“5”来退出程序。
希望这个解决方案能够帮助到你完成C语言实训任务。
阅读全文