df.reindex()和df.loc[]的区别

2 投票
1 回答
3925 浏览
提问于 2025-04-18 02:05

假设我想计算两个MultiIndex数据框之间的df2 - df1的相对补集。假设它们的索引结构是一样的,基于我在Andy Hayden的这个回答中看到的,我可以这样做:

diff_indices = df2.index - df1.index

然后可以选择:

  1. df2.reindex(diff_indices, inplace=True)

    或者

  2. df2 = df2.loc[diff_indices]

那么上面1和2有什么区别呢?df.reindexdf.loc之间有什么不同?

1 个回答

10

这两种方法都会返回一个新的系列或数据框,基本上是做同样的事情。

看起来有点重复的原因是,使用 loc 的时候有一些语法上的限制(你只能给 __getitem__ 传一个参数),而 reindex 是一个方法,它可以接受各种可选的参数。(文档)

撰写回答