【发布时间】:2022-01-01 22:56:49
【问题描述】:
我有一个数据框,其中包含一组样本的浓度值,如下所示:
| Sample | Ethanol | Acetone | Formaldehyde | Methane |
|---|---|---|---|---|
| A | 20 | 20 | 20 | 20 |
| A | 30 | 23 | 20 | nan |
| A | 20 | 23 | nan | nan |
| A | nan | 20 | nan | nan |
| B | 21 | 46 | 87 | 54 |
| B | 23 | 74 | nan | 54 |
| B | 23 | 67 | nan | 53 |
| B | 23 | nan | nan | 33 |
| C | 23 | nan | nan | 66 |
| C | 22 | nan | nan | 88 |
| C | 22 | nan | nan | 90 |
| C | 22 | nan | nan | 88 |
我有第二个数据框,其中包含第一个数据框中未丢失的浓度值的比例:
| Sample | Ethanol | Acetone | Formaldehyde | Methane |
|---|---|---|---|---|
| A | 0.75 | 1 | 0.5 | 0.25 |
| B | 1 | 0.75 | 0.25 | 1 |
| C | 1 | 0 | 0 | 1 |
当第二个数据帧中的条件为 0.5 或更低时,我想用 nan 替换第一个数据帧中的值。因此,生成的数据框如下所示。任何帮助都会很棒!
| Sample | Ethanol | Acetone | Formaldehyde | Methane |
|---|---|---|---|---|
| A | 20 | 20 | nan | nan |
| A | 30 | 23 | nan | nan |
| A | 20 | 23 | nan | nan |
| A | nan | 20 | nan | nan |
| B | 21 | 46 | nan | 54 |
| B | 23 | 74 | nan | 54 |
| B | 23 | 67 | nan | 53 |
| B | 23 | nan | nan | 33 |
| C | 23 | nan | nan | 66 |
| C | 22 | nan | nan | 88 |
| C | 22 | nan | nan | 90 |
| C | 22 | nan | nan | 88 |
【问题讨论】:
-
首先,到目前为止,您尝试了什么?接下来,您能否给出一个单元格的结果并解释如何获得正确的值?
-
到目前为止,我只设法从第一个数据帧生成第二个数据帧。我不知道如何开始第二部分......任何关键字,我可以在数据框的列和行上寻找迭代的地方都会很棒!
-
如果不清楚,当第二个数据帧中的值等于或低于 0.5 时,我想用 nan 替换第一个数据帧中的值。所以这意味着替换样品 A + 甲醛 = nan、样品 B + 甲醛 = nan 和样品 A + 甲烷 = nan 的值。
-
我已经更新了我原来的问题,使其更加清晰。
-
好的。我想我明白了:)你能检查我的答案吗?
标签: pandas dataframe replace nan