Python 使用pandas合并excel工作表中的行,同时避免重复
我从两个不同的excel表格中提取了两列。这两列都是名称列表。我想比较column1和column2,并向column1添加任何不在column2中的名称,而不复制现有名称。我应该使用一个循环来完成这个任务,还是有一个内置的函数可以使用Python 使用pandas合并excel工作表中的行,同时避免重复,python,pandas,Python,Pandas,我从两个不同的excel表格中提取了两列。这两列都是名称列表。我想比较column1和column2,并向column1添加任何不在column2中的名称,而不复制现有名称。我应该使用一个循环来完成这个任务,还是有一个内置的函数可以使用 df_1=pd.read_excel("excel sheet") df_2=pd.read_excel("sheet 2") df1.iloc[:,[3]] df1.dropna().drop_duplicates() df_company_list.il
df_1=pd.read_excel("excel sheet")
df_2=pd.read_excel("sheet 2")
df1.iloc[:,[3]]
df1.dropna().drop_duplicates()
df_company_list.iloc[:,[1]]
new_col = pd.concat(df1[col1], df2[col2]).drop_duplicates()
unique_names = df1[col1].unique() # np.array
idx = df2[col2].apply(lambda x : x not in unique_names) # boolean array
df_final = df1.append(df2[idx]) # data frame
# or
col_final = df1[col1].append(df2.loc[idx,col2]) # single column
但是apply
本质上是一个循环顺便说一句,你的代码
df1.iloc[:,[3]]
df1.dropna().drop_duplicates()
不修改
df1
。您可能想要df1=df1.iloc[:,[3]
什么是col1
?获取错误NameError:name'col1'未定义
它是您列的名称或索引。实际上,我使用df1剥离了我需要的列。iloc
因此我实际上不需要索引。另外,顺便说一句,解决方案2是我需要的def。我在第一个df中有重复的。嗯,不太清楚你的意思。。。这不解决你的问题吗?