gpt4 book ai didi

python - 检查一列中的值是否在 Python 中另一列的区间值中

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:23 25 4
gpt4 key购买 nike

我有以下数据框:

import pandas as pd
import numpy as np
data = {
"index": [1, 2, 3, 4, 5],
"v1": [1100, 1776, 1228, 1640, np.NaN],
"v2": [1000, 1805, 1231, 1425, 1800],
"result": ['Y', 'Y', 'Y', 'N', 'N']
}
df = pd.DataFrame.from_dict(data)
print(df)

我想检查列 v1 是否在列 v2 ± 100(或 [v2*0.95, v2*1.05])的区间内。我怎样才能在 Python 中做到这一点?感谢您的帮助。这是我的最终结果示例:

    index    v1      v2    result
0 1 1100.0 1000 Y
1 2 1776.0 1805 Y
2 3 1228.0 1231 Y
3 4 1640.0 1425 N
4 5 NaN 1800 N

最佳答案

对于 [v2*0.95, v2*1.05] 中的 v1 使用:

df['res'] = ''
for idx, val in enumerate(df.itertuples()):
if df.loc[idx,'v1'] > df.loc[idx,'v2'] * 0.95 and df.loc[idx,'v1'] < df.loc[idx,'v2'] * 1.05:
df.loc[idx, 'res'] = 'Yes'
else:
df.loc[idx, 'res'] = 'No'


+---+-------+--------+--------+------+-----+
| | index | result | v1 | v2 | res |
+---+-------+--------+--------+------+-----+
| 0 | 1 | Y | 1100.0 | 1000 | No |
| 1 | 2 | Y | 1776.0 | 1805 | Yes |
| 2 | 3 | Y | 1228.0 | 1231 | Yes |
| 3 | 4 | N | 1640.0 | 1425 | No |
| 4 | 5 | N | NaN | 1800 | No |
+---+-------+--------+--------+------+-----+

关于python - 检查一列中的值是否在 Python 中另一列的区间值中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53966978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com