[英]Pandas python reversing the the values and rows for column within a dataset
[英]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.