Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何比较两个dataframe并根据条件填充列值?_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

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")