簡體   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