繁体   English   中英

PYTHON 检查列数据集中的值是否在另一个数据集中报告的值范围内

[英]PYTHON check if a value in a column Dataset is within a range of values reported in another dataset

已阅读类似的帖子,但找不到确切的解决方案。 我在名为“A”的列中有一个数据集,并想检查该列中的每个值是否包含在另一个数据集中的任何间隔内,并具有两个列间隔“开始”和“结束”。 在“B”列中返回 True 或 False 请参见附图(数据始终按升序排列)。 谢谢你数据示例

这不是最有效的解决方案,但它应该满足您的要求:

import pandas as pd
import numpy as np

df1 = pd.DataFrame({"A":list(range(20))})


df2 = pd.DataFrame({"START":[1,3,5,7],
                     "END":[2,4,6,8]})


def compare_with_df(x,df):
  for row in range(df.shape[0]):
    if x >= df.loc[row,'START'] and x <= df.loc[row,'END']:
      return True
  return False

df1['B'] = df1['A'].apply(lambda x:compare_with_df(x,df2))

如您所见, compare_with_df() function 循环遍历df2并将给定的x与所有可能的范围进行比较(这可以并且可能应该针对更大的数据集进行优化)。 apply()方法等效于循环遍历给定列(系列)的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM