使用pandas组合excel表中的行,同时避免重复

时间:2016-04-06 14:37:17

标签: python pandas

我从两个不同的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]]

1 个答案:

答案 0 :(得分:0)

  1. 如果您只想获取一列唯一名称,那就像

    一样简单
    new_col = pd.concat(df1[col1], df2[col2]).drop_duplicates()
    
  2. 当第一列或数据框本身包含重复项时,保持第一列或数据框完好无损。我能想到这样的事情:

    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本质上是一个循环。

  3. BTW,你的代码

    df1.iloc[:,[3]]
    df1.dropna().drop_duplicates()
    

    不会修改df1。您可能想要df1 = df1.iloc[:,[3]]