我在groupby
pandas数据框上使用来删除没有特定列的最小值的所有行。像这样:
df1 = df.groupby("item", as_index=False)["diff"].min()
但是,如果我不止这两列,其他列(例如otherstuff
在我的示例中)将被删除。我可以使用保留这些列groupby
,还是必须找到一种不同的方式删除行?
我的数据如下:
item diff otherstuff
0 1 2 1
1 1 1 2
2 1 3 7
3 2 -1 0
4 2 1 3
5 2 4 9
6 2 -6 2
7 3 0 0
8 3 2 9
并应以如下形式结束:
item diff otherstuff
0 1 1 2
1 2 -6 2
2 3 0 0
但是我得到的是:
item diff
0 1 1
1 2 -6
2 3 0
我一直在浏览文档,找不到任何东西。我试过了:
df1 = df.groupby(["item", "otherstuff"], as_index=false)["diff"].min()
df1 = df.groupby("item", as_index=false)["diff"].min()["otherstuff"]
df1 = df.groupby("item", as_index=false)["otherstuff", "diff"].min()
但是这些都不起作用(我在最后一个中意识到,语法是在创建组后进行聚合的)。
方法1:使用idxmin()
来获取minimum元素的 索引diff
,然后选择那些元素:
>>> df.loc[df.groupby("item")["diff"].idxmin()]
item diff otherstuff
1 1 1 2
6 2 -6 2
7 3 0 0
[3 rows x 3 columns]
方法2:按排序diff
,然后取每组中的第一个元素item
:
>>> df.sort_values("diff").groupby("item", as_index=False).first()
item diff otherstuff
0 1 1 2
1 2 -6 2
2 3 0 0
[3 rows x 3 columns]
请注意,即使行内容相同,结果索引也不同。
我有一个扁平的对象数组,我想将其转化为嵌套树。我尝试过使用递归和reduce,但没有达到预期效果。 具体来说,我有一个数组: 我想把它变成: 我已经能够使用递归来创建一个树,其中<code>所有 尝试应用本文中的代码 从数组创建对象树,但我的方案有点不同。任何帮助赞赏! 我还尝试使用:在javascript中从平面数组构建树形数组 但也不能让这个工作吗?
我有一个与一个标题和位置关联的多个作者的df: 我希望输出忽略任何None值,如下所示: 任何帮助将不胜感激!
我有一个可用的列表名,我正在按blockIndex属性对这些列表进行排序和分组,如下所示: 问题是分组的结果不按block Index排序。
请假设下表: 我需要根据对其进行分组,因此,下面是我的查询: 结果如下: 现在我还需要获取这些行的。以下是预期的结果: 知道我该怎么做吗?
我需要删除每个表ID的所有重复项,除了一个之外。像下面这样。我需要删除valueid上01,02,03的所有副本。。。 原件: 应该这样结束: 我试着用这样的东西来做,但是我不知道我怎么才能在id上删除这些内容 有什么建议吗? 提前感谢
如何在Jolt转换JSON数组中保留其他字段,我正在尝试使用通配符,但在最终输出中没有添加字段? 这是我正在使用的输入示例 我使用了下面的Jolt转换,并尝试了通配符: 下面是我的预期输出,其中发生了移位操作,然后需要保持所有其他字段不变 即将到来的实际输出: