包含两个熊猫列之间差异的最小值的行-无groupby

水库投资

在由...生成的样本数据中

np.random.seed(2020)
sz = 20
df = pd.DataFrame(np.random.randn(sz, 2), index=range(sz), columns=list('AB'))
df.insert(0, 'Item', 'X')

...以获取包含差异最小值的行,此行将正确运行:

df.iloc[df.groupby('Item').apply(lambda x: abs(x['A'] - x['B']).idxmin())]

但是,删除groupby以获取相应的df.iloc

  1. df.apply(lambda x: abs(x.A - x.B).idxmin()) 引发错误 AttributeError: 'Series' object has no attribute 'A'

  2. df.apply(lambda x: abs(x['A']- x['B']).idxmin())引发另一个错误类型KeyError: 'A'

为什么会这样呢?

不使用而获得差的最小值的正确代码是什么groupby

约翰·斯洛珀

进行应用时,您必须提供轴,该轴应该循环。默认情况下,它将逐列显示,因此您将收到消息。

以下将起作用: df.apply(lambda x: abs(x['A']- x['B']), axis=1).idxmin()

但是,不需要使用lambda,您可以执行以下操作:abs(df['A']- df['B']).idxmin()(df['A']- df['B']).abs().idxmin()

两者都比使用apply快得多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫groupby,无

Pandas Dataframe groupby聚合函数以及动态的列的最大值和最小值之间的差异

快速高效的熊猫Groupby sum / mean,无聚合

熊猫groupby并更新为最小值

python pandas:groupby中两个日期之间的差异

Pandas groupby 查找两个日期时间列之间的差异

熊猫Groupby中两个系列的最大和最小

Groupby列使多个行保持最小值

在大熊猫groupby之后如何获得两个组之间的p值?

使用Java 8流计算两个值之间的差异并返回最小值

熊猫在groupby之后获得所有最小值和最大值的行

如何有效地过滤由两列 groupby 操作获得的数据框以仅包含第二个索引的最大值和最小值?

仅Numpy(无熊猫)的Groupby移位(滞后值)类似物

Python熊猫:在groupby中选择第二个最小值

如何使用熊猫查找两个日期之间的最小值并将其放入新列

获取pandas中groupby的最大值和最小值之间的差异并计算平均值

Groupby在两个分类列的熊猫中计数-Pandas

找出两个无符号 16 位数字之间差异的最佳方法是什么?

熊猫groupby并找到最大和最小之间的差异

识别包含无值的熊猫列

无和<无值>之间的差异

Pandas Groupby列的最后N行的最小值和最大值

找到无向图中两个节点之间断开连接的最小权重

熊猫-Groupby两个功能

在 SQL Server 中找到最低的两个最小值并找到两者之间的差异?

在另一列的两个条目之间查找一列的最小值

Pandas GroupBy并选择特定列中具有最小值的行

根据多列的groupby删除行,仅得出最小值

熊猫获得两列或更多列的行最小值