[英]Pandas populate new dataframe column based on matching columns in another dataframe
[英]How to use pandas dataframe to add a column to a dataframe that labels data as 1 or 0 based on matching columns in another df
我正在使用 Pandas 數據幀將機器學習算法的一些醫療保險數據集標記為欺詐或非欺詐。 標記涉及將 DMPOES 數據集中的 NPI 編號與 LEIE 數據集中的 NPI 編號匹配。 每個數據集都包含一個名為“NPI”的列。 我需要能夠找出 DMEPOS dataframe 中的每一行在 LEIE 數據集中是否有匹配的 NPI。 接下來,我需要向 DMPOES 數據集添加一列(可能命名為“欺詐”,表示該行是否欺詐,使用 1 表示欺詐,使用 0 表示不欺詐。這是我編寫的代碼(它是'不多,但它應該給出我與 Pandas 一起使用的大致方向。
import pandas as pd
import numpy as np
#Read files into df
dmepos = pd.read_csv('dmpoes.csv')
leie = pd. =read_csv('leie.csv')
這是下載數據集的鏈接(每個數據集中的 NPI 列標記不同,所以我進去並更改了它,以便列名匹配,我建議也這樣做)我還更改了文件的名稱以使其更多易於編碼:DMPOES: https://www.cms.gov/Research-Statistics-Data-and-Systems/Statistics-Trends-and-Reports/Medicare-Provider-Charge-Data/DME2018 LEIE: Z5E056C500A1C4B6A7110B5ADED807 oig.hhs.gov/exclusions/exclusions_list.asp
您可以使用合並。 如果您不重命名 cols,它實際上更清潔 IMO,因為您必須在合並后處理后綴。 合並后,您可以使用 np.where 根據存在的 NaN 值更新欺詐 col,其中兩個合並 col 不匹配。 不完全確定這是您想要的欺詐專欄的邏輯,但如果不是,請發表評論,我會根據需要進行更新。
import pandas as pd
import numpy as np
#Read files into df
dmepos = pd.read_csv('dmpoes.csv')
leie = pd.read_csv('leie.csv')
df_m = dmepos.merge(leie, left_on='REFERRING_NPI', right_on='NPI', how='left')
df_m['Fraudulent'] = np.where(df_m['NPI'].isnull(), 1, 0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.