我从两个不同的Excel工作表中提取了两列。这两列都是名称列表。我想比较column1和column2,并在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.iloc[:,[1]]
答案 0 :(得分:0)
如果您只想获取一列唯一名称,那就像
一样简单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
本质上是一个循环。
BTW,你的代码
df1.iloc[:,[3]]
df1.dropna().drop_duplicates()
不会修改df1
。您可能想要df1 = df1.iloc[:,[3]]
。