获取 Pandas DataFrame 中每个组的第一行
在 pandas 中,groupby 操作允许跨不同类别进行高效的数据聚合和操作。然而,检索每个组中的特定行可能是一个挑战。本文将演示如何在对 pandas DataFrame 进行分组时检索每个组的第一行。
问题:
我们有一个包含两列“id”的 DataFrame和“价值”。我们希望按“id”、“value”对 DataFrame 进行分组,并获取每个组的第一行。
预期结果:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
解决方案:
要检索每组的第一行,我们可以使用.first() 方法。通过传递“id”作为组键,.first() 为每个唯一的“id”组选择第一个非空元素。
df.groupby('id').first()
这将产生所需的输出,其中第一行为显示每个“id”组。
获取标识符作为列:
如果我们需要标识符作为列,我们可以使用 .reset_index()。
df.groupby('id').first().reset_index()
这会产生:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
检索多行:
要检索每组的前 n 行,我们可以使用.head().
df.groupby('id').head(2).reset_index(drop=True)
这允许我们从每组的开头检索指定数量的行。
以上是如何获取 Pandas DataFrame 中每组的第一行?的详细内容。更多信息请关注PHP中文网其他相关文章!