代码之家  ›  专栏  ›  技术社区  ›  Dimebag

熊猫加入vs添加列

  •  3
  • Dimebag  · 技术社区  · 7 年前

    我有2个数据帧( df1 df2 )使用相同的 MultiIndex . df1型 有A列, df2型 有B列。

    我找到了两种“连接”这些数据帧的方法:

    df_joined = df1.join(df2, how='inner')
    

    df1['B'] = df2['B']
    

    第一种选择需要更长的时间。为什么? 选项2是否不查看索引,而只是将列“附加”到右侧?

    之后运行此返回 True ,因此最终结果似乎是一样的,但这可能是因为 df1型 df2型 它们的顺序也是一样的:

    df_joined.equals(df1)
    

    知道索引是相同的,有没有更快的方法加入数据帧?

    1 回复  |  直到 7 年前
        1
  •  4
  •   jpp    7 年前

    没有比 df1['B'] = df2['B'] 如果索引对齐。

    将一个系列分配给另一个系列已经在中进行了优化 pandas .

    join 由于显式排列,所需时间比赋值长 df1.index df2.index ,这很贵。我们并不认为指数的顺序是一致的。根据 pd.DataFrame.join documentation ,如果未指定列 参加 将在数据帧的各自索引上进行。

    如果您发现这是您工作流程中的一个瓶颈,我会感到惊讶。如果是,那么我建议你 numpy 阵列和避免 熊猫 总共