Python 如何比较两个dataframe并根据条件填充列值?
您好,我正在尝试根据某些条件比较两个数据帧,并尝试填充列值。我没有得到理想的结果。你能帮帮我吗 例如:Python 如何比较两个dataframe并根据条件填充列值?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,您好,我正在尝试根据某些条件比较两个数据帧,并尝试填充列值。我没有得到理想的结果。你能帮帮我吗 例如: df1: PDF_FILE_Name Indication PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_rec PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_cgr PA0001000_pcodr_rfa_axi
df1:
PDF_FILE_Name Indication
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_rec
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_cgr
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_fdk_pfizer
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_fdk_kcc
df2:
PDF_FILE_Name Indication
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_rec Metastatic Renal Cell Carcinoma
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_fdk_pfizer Metastatic Renal Cell Carcinoma
In result I want below df
print(df1):
PDF_FILE_Name Indication
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_rec Metastatic Renal Cell Carcinoma
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_cgr
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_fdk_pfizer Metastatic Renal Cell Carcinoma
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_fdk_kcc
Series.map()
df1['Indication']=df1['PDF_FILE_Name'].map(df2.set_index('PDF_FILE_Name')['Indication']))
或merge()
df1['Indication']=pd.merge(df1,df2,on='PDF_FILE_Name')['Indication_y']
这是一个简单的merge()
PDF文件名
指示
0
PA0001000\u pcodr\u rfa\u axitinib\u inlyta\u mrcc\u rfa\u rec
转移性肾细胞癌
1.
PA0001000\u pcodr\u rfa\u axitinib\u inlyta\u mrcc\u rfa\u cgr
楠
2.
PA0001000\u pcodr\u rfa\u axitinib\u inlyta\u mrcc\u fdk\u辉瑞
转移性肾细胞癌
3.
PA0001000\u pcodr\u rfa\u axitinib\u inlyta\u mrcc\u fdk\u kcc
楠
你试过合并吗
df1.merge(df2,on='PDF\u FILE\u Name',how='left')
df1 = pd.read_csv(io.StringIO("""PDF_FILE_Name Indication
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_rec
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_cgr
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_fdk_pfizer
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_fdk_kcc"""), sep="\s+")
df2 = pd.read_csv(io.StringIO("""PDF_FILE_Name Indication
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_rfa_rec Metastatic Renal Cell Carcinoma
PA0001000_pcodr_rfa_axitinib_inlyta_mrcc_fdk_pfizer Metastatic Renal Cell Carcinoma
"""), sep="\s\s+", engine="python")
df1.loc[:,["PDF_FILE_Name"]].merge(df2, on="PDF_FILE_Name", how="left")