AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 77227836
Accepted
Manuel Veiga
Manuel Veiga
Asked: 2023-10-04 16:06:28 +0800 CST2023-10-04 16:06:28 +0800 CST 2023-10-04 16:06:28 +0800 CST

如何将其转换为有用的浮点数?以字符串表示的血压值

  • 772

我正在处理一个类似这样的数据集,我有兴趣了解血压如何影响某些患者。

df = {'Person ID': [1,2,3,4,5,6,7,8], 
      'BMI': ['Overweight','Normal','Normal','Obese','Obese','Underweight','Normal','Obese'], 
      'Sleep Disorder': ['Insomnia',float('nan'),float('nan'),'Sleep Apnea','Sleep Apnea',float('nan'),float('nan'),'Insomnia'],
'Illness':['Ill', 'Healthy','Healthy','Ill','Ill','Healthy','Healthy','Ill'],
'Blood Pressure': ['125/82','132/87','128/85','126/83','126/83','115/78','139/91','142/92']}

输出:

   Person ID          BMI Sleep Disorder  Illness Blood Pressure   Sleep Duration
0          1   Overweight       Insomnia      Ill         125/82              6.1
1          2       Normal            NaN  Healthy         132/87              6.2
2          3       Normal            NaN  Healthy         128/85              6.2
3          4        Obese    Sleep Apnea      Ill         126/83              5.9
4          5        Obese    Sleep Apnea      Ill         126/83              5.9
5          6  Underweight            NaN  Healthy         115/78              8.1
6          7       Normal            NaN  Healthy         139/91              8.1
7          8        Obese       Insomnia      Ill         142/92              8.1

主要问题是它既Blood Pressure不是 Int 也不是 Float 那么我如何测量相关性或者哪种相关性可以用来"Ill"与"Healthy"人进行比较?

这个想法是复制这个:

graph_bp = sns.scatterplot(data = sleep_dataset, x = "Blood Pressure", y = "Sleep Duration", hue = "Health State")
graph_bp.set_title("Relation between age and sleep duration")
graph_bp.set_xlabel("Blood Pressure")
graph_bp.set_ylabel("Sleep Duration")
cor_bp = sleep_dataset["Blood Pressure"].corr(sleep_dataset["Sleep Duration"])
print("Correlation with age: " + str(cor_bp))

获取有关血压的一些信息,但没有关联的 int。一个想法是将最高值和最低值分开并进行差异,但这似乎不是一个好主意,因为它会说一个具有 140/100 的人与一个 100/60 相同,你会如何做图形是这样的吗?

pandas
  • 1 1 个回答
  • 23 Views

1 个回答

  • Voted
  1. Best Answer
    mozway
    2023-10-04T16:12:54+08:002023-10-04T16:12:54+08:00

    相关性可以与其中一个数字相关,也可以与两者相关。从科学的角度来看,您应该独立计算这两种相关性,或者找到从两者组合得出的有意义的指标(难度更大)。

    想象一下,一种特定的疾病只影响其中一种压力,或者以相反的方式影响它们。通过使用聚合,您将丢失信息并可能错过您要查找的内容。

    无论如何,您应该将字符串转换为两个数字,可以通过以下方式实现:

    df[['systolic', 'diastolic']] = (df['Blood Pressure']
                                     .str.split('/', expand=True)
                                     .astype(int)
                                    )
    

    输出:

       Person ID          BMI Sleep Disorder  Illness Blood Pressure  systolic  diastolic
    0          1   Overweight       Insomnia      Ill         125/82       125         82
    1          2       Normal            NaN  Healthy         132/87       132         87
    2          3       Normal            NaN  Healthy         128/85       128         85
    3          4        Obese    Sleep Apnea      Ill         126/83       126         83
    4          5        Obese    Sleep Apnea      Ill         126/83       126         83
    5          6  Underweight            NaN  Healthy         115/78       115         78
    6          7       Normal            NaN  Healthy         139/91       139         91
    7          8        Obese       Insomnia      Ill         142/92       142         92
    

    然后您可以绘制其中一个压力的图表:

    graph_bp = sns.scatterplot(data=sleep_dataset, x='systolic',
                               y='Sleep Duration', hue='Illness')
    

    在此输入图像描述

    或者两种压力:

    df_melt = sleep_dataset.melt(df.columns.difference(['systolic', 'diastolic']),
                                 var_name='type', value_name='pressure')
    graph_bp = sns.scatterplot(data=df_melt, x='pressure',
                               y='Sleep Duration', hue='Illness', style='type')
    

    在此输入图像描述

    • 1

相关问题

  • 从重复行中提取字符串,删除重复项,给出字符串计数[重复]

  • 循环遍历列以生成 countplot() seaborn

  • 如何获取索引列中每行的最大值

  • 使用 pyarrow dtype 创建 dask 数组

  • 拆分数据框中的条目[重复]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    使用 <font color="#xxx"> 突出显示 html 中的代码

    • 2 个回答
  • Marko Smith

    为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类?

    • 1 个回答
  • Marko Smith

    您可以使用花括号初始化列表作为(默认)模板参数吗?

    • 2 个回答
  • Marko Smith

    为什么列表推导式在内部创建一个函数?

    • 1 个回答
  • Marko Smith

    我正在尝试仅使用海龟随机和数学模块来制作吃豆人游戏

    • 1 个回答
  • Marko Smith

    java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duratio

    • 3 个回答
  • Marko Smith

    为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)?

    • 4 个回答
  • Marko Smith

    为什么库中不调用全局变量的构造函数?

    • 1 个回答
  • Marko Smith

    std::common_reference_with 在元组上的行为不一致。哪个是对的?

    • 1 个回答
  • Marko Smith

    C++17 中 std::byte 只能按位运算?

    • 1 个回答
  • Martin Hope
    fbrereto 为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类? 2023-12-21 00:31:04 +0800 CST
  • Martin Hope
    比尔盖子 您可以使用花括号初始化列表作为(默认)模板参数吗? 2023-12-17 10:02:06 +0800 CST
  • Martin Hope
    Amir reza Riahi 为什么列表推导式在内部创建一个函数? 2023-11-16 20:53:19 +0800 CST
  • Martin Hope
    Michael A fmt 格式 %H:%M:%S 不带小数 2023-11-11 01:13:05 +0800 CST
  • Martin Hope
    God I Hate Python C++20 的 std::views::filter 未正确过滤视图 2023-08-27 18:40:35 +0800 CST
  • Martin Hope
    LiDa Cute 为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)? 2023-08-24 20:46:59 +0800 CST
  • Martin Hope
    jabaa 为什么库中不调用全局变量的构造函数? 2023-08-18 07:15:20 +0800 CST
  • Martin Hope
    Panagiotis Syskakis std::common_reference_with 在元组上的行为不一致。哪个是对的? 2023-08-17 21:24:06 +0800 CST
  • Martin Hope
    Alex Guteniev 为什么编译器在这里错过矢量化? 2023-08-17 18:58:07 +0800 CST
  • Martin Hope
    wimalopaan C++17 中 std::byte 只能按位运算? 2023-08-17 17:13:58 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve