【问题标题】:Detecting differences in a Pandas Dataframe - use of lambdas in .loc[] syntax检测 Pandas Dataframe 中的差异 - 在 .loc[] 语法中使用 lambda
【发布时间】:2020-07-27 14:36:16
【问题描述】:

我指的是这篇文章:

https://kanoki.org/2019/07/04/pandas-difference-between-two-dataframes/

我不理解 loc 的这种特殊语法,其中 lambda 正在执行行过滤?

df = df1.merge(df2, how = 'outer' ,indicator=True).loc[lambda x : x['_merge']=='left_only']

这个 lambda 是做什么的,我知道最终结果 - 只是想了解 lambda 在“loc”语法中的使用。

【问题讨论】:

  • this 的方式这样做会更有意义,而且由于query,它也更具可读性,我不喜欢使用lambda 进行过滤。

标签: python pandas


【解决方案1】:

loc accepts (among other things) a one-argument callable 在每一行上调用。可调用对象应返回可用作索引的内容(在本例中为布尔值)。

实际上,此语法意味着“对于合并数据帧中的每一行 x,调用该行上的 lambda 并在 x['_merge'] == 'left_only' 时选择它”。

【讨论】:

  • 是否可以在没有 lambda 的情况下过滤合并的结果,并使用示例中的链接方法?
  • 是的。正如@Erfan 在对问题的评论中指出的那样,您可以使用.query('_merge == "left_only"') 来获得相同的结果。
猜你喜欢
  • 2015-02-14
  • 2022-01-07
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 2020-12-28
  • 2017-03-11
  • 2016-10-01
相关资源
最近更新 更多