簡體   English   中英

比較 dataframe 的子集與超集 dataframe

[英]Comparing subset of dataframe with the superset dataframe

我有一個超集 dataframe 和子集 dataframe。 超集有 n 列,子集有 m (n > m)。

要求是將子集的 m 列與超集中的匹配列標題進行比較。

注意:數據框包含來自 csv 文件的數據,子集是參考文件,超集是整個工具 output 文件。

例如

超集 Dataframe:

Car_Brand, Car_model, Color, Year, Engine

子集 Dataframe:

Year, Engine

如果兩個數據幀之間的“年份”“引擎”條目不匹配,我必須記錄失敗。

我怎樣才能做到這一點?

我探索了 Intersection、Compare、Eq,如果我理解正確,這些似乎並不能解決我的目的。

比較具有不同列數(來自 csv)的數據幀的最佳方法是什么?

請幫忙。

希望即使子集 dataframe 具有可變的列號,並且相同的列存在於 Superset dataframe 中,這也會有所幫助。

superset = {'Car_Brand':['mahi01','ta02','suz03','hon04','hyu05','ki06'],
            'Car_model':['xu01','nex02','bal03','ama04','cre05','son06'], 
            'Color':['white','blue','red','grey','black','beige'], 
            'Year':['2018','2019','2020','2021','2022','2017'],
            'Engine':['ab01','ab02','ab03','ab04','ab05','ab06']}

dfSuper = pd.DataFrame(superset, columns=['Car_Brand', 'Car_model', 'Color',
                                 'Year', 'Engine'])
subset = {'Year':['2018','2010','2020','2021','2020'],
          'Engine':['ab01','ab02','ab03','ab04','ab05']}
dfSub = pd.DataFrame(subset, columns=(['Year', 'Engine']))
df3Result = dfSuper.merge( dfSub, on=list(dfSub.columns.values), how='left', indicator='match')
df3Result['match'] = np.where(df3Result.match == 'both', True, False)

df超級:

在此處輸入圖像描述

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM