Pandas:选择每组中的前几行

2024-01-11

我无法解决这个简单的问题,我在这里寻求帮助...... 我的 DataFrame 如下,我想选择每组“a”中的前两行

df = pd.DataFrame({'a':pd.Series(['NewYork','NewYork','NewYork','Washington','Washington','Texas','Texas','Texas','Texas']), 'b': np.arange(9)})

df
Out[152]: 
            a  b
0     NewYork  0
1     NewYork  1
2     NewYork  2
3  Washington  3
4  Washington  4
5       Texas  5
6       Texas  6
7       Texas  7
8       Texas  8

也就是说,我想要如下输出:

            a  b
0     NewYork  0
1     NewYork  1
2  Washington  3
3  Washington  4
4       Texas  5
5       Texas  6

非常感谢您的帮助。


在 pandas 0.13rc 中,您可以直接使用 head 来执行此操作(即无需重置索引):

In [11]: df.groupby('id', as_index=False).head(2)
Out[11]: 
    id   value
0    1   first
1    1  second
3    2   first
4    2  second
5    3   first
6    3   third
9    4  second
10   4   fifth
11   5   first
12   6   first
13   6  second
15   7  fourth
16   7   fifth

[13 rows x 2 columns]

注意:正确的索引,即使使用这个小例子,这也比以前(有或没有reset_index)要快得多:

# 0.13rc
In [21]: %timeit df.groupby('id', as_index=False).head(2)
1000 loops, best of 3: 279 µs per loop

# 0.12
In [21]: %timeit df.groupby('id', as_index=False).head(2)  # this didn't work correctly
1000 loops, best of 3: 1.76 ms per loop

In [22]: %timeit df.groupby('id').head(2).reset_index(drop=True)
1000 loops, best of 3: 1.82 ms per loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas:选择每组中的前几行 的相关文章

随机推荐

  • Airflow - 从 dag 上下文回调中解析任务 ID

    起初与dag callback on failure callback and on success callback 我以为这会触发success or fail状态时dag完成 如 dag 中所定义 但随后它似乎每次都会被实例化task
  • Matplotlib 提供的seaborn 样式自 3.6 起已弃用

    Matplotlib 提供的seaborn 样式自 3 6 起已弃用 因为它们不再对应于seaborn 发布的样式 但是 它们仍将以 seaborn v0 8 rdquo 24418 24335 25552 20379 12290 2511
  • 适用于 Android Studio 的 Google Play 服务版本

    我正在从 Eclipse 切换到 Android Studio 在 Eclipse 中将 GPServices 添加到我的项目中非常简单 只需确保在 SDK 管理器中安装了最新的 SDK 并将库从 SDK 包复制到我的工作区即可 使用 AS
  • 为每个左连接行匹配重复所有基表行

    我无法简洁地描述我需要什么 因此感谢任何编辑标题的帮助 我有 3 张表 Jobs has JobID PK JobsDetail has JobID FK and DepartmentsID FK Departments has Depar
  • 如何使用 dojo create 创建 div?

    我想通过 dojo create 从此示例生成 divNodes0 div 包括 h1 和 ul div div style background color d0d0d0 h1 h1 ul ul div div
  • Kotlin 用子类型覆盖 fun

    我在继承包含基类型的方法 乐趣的接口时遇到问题 我想将其重写为实现它的类中的子类型 到目前为止我已经有了界面 interface IModel fun convert dataModel BaseDataModel 以及实现它的类 clas
  • 如何使用命令行编译WPF程序?

    我需要使用命令行 C 编译器 即csc exe 问题是错误CS0103 编译器说没有InitializeComponent 我的程序中的方法 但这是错误的 因为我添加了 System Xaml dll 有人知道如何解决这个问题吗 使用 MS
  • Rails Engine - Gems 依赖项,如何将它们加载到应用程序中?

    我在这里做一个引擎 它独立工作正常 当我将其转换为 gem 并将其加载到另一个应用程序中时 我收到许多未定义的错误 这些错误来自我的引擎 gem 的依赖项 这是宝石规格 s add dependency paperclip s add de
  • 如何在引导程序中将图像放在图像上;

    我需要将一个图像放在另一个图像上 这是我的代码
  • 找不到方法compile()

    我想在 android studio 中添加一个 lib 但它不起作用 这是一个屏幕截图 我还尝试在 gradle build 中添加依赖项 但这也不起作用 也许是因为我在代理后面 You 使用错误 build gradle file 你不
  • 基于 OWIN 在 MVC 5 中为多个 Web 应用程序设置表单身份验证

    我正在设置我的第一个 MVC Web 应用程序 我知道我需要提供基于表单的身份验证模型 并且我也知道我也会将其重用于多个其他内部 Web 应用程序 我相信 MVC 5 身份验证的所有文档都基于 OWIN 内容 并且使用 EF Code Fi
  • 如何更改 Windows 服务的名称?

    我有一个用 C 开发的 Windows 服务应用程序 相同的服务需要使用不同的配置文件来运行 要在同一台计算机上运行这些服务 我需要更改服务的名称 我可以创建解决方案的多个副本 但不确定如何更改服务的名称 Thanks 在您的 win 服务
  • 在 Powershell 中创建表

    伙计们 我有一个查询远程计算机中的服务的脚本 它运行 2 个嵌套的 foreach 循环 其中 1 个用于计算机列表 内部一个用于服务列表 我想在二维数组中捕获该过程的输出 The desired output should be like
  • Node.js 猫鼬性能

    有人有使用 mongoose js 作为大规模 Mongodb 的 Node js 映射器的经验吗 我想知道是否应该使用本机驱动程序 因此我将所有内容保持轻量级或编写一个简单的包装器 如果有人有任何提示 请建议 非常感谢 参加聚会有点晚了
  • 如何订购字母列表(“a”、“b”、“c”、...、“z”、“aa”、“ab”)?在这种情况下,String#succ 和 <=> 似乎不能很好地协同工作

    我的一个对象 item 有一个 ID letter id 格式为 a b aa ab 等 为了生成它 我使用 ruby 的String succ在这样的实例方法中 def set letter id last parent items al
  • 日期之间的天数(不包括周末和节假日)

    有没有办法在不创建新表或视图的情况下计算 PostgreSQL 中两个日期之间的天数 不包括周末和特定假期 我只有数据库的读取权限 因此无法创建 假日 表或视图 我正在考虑使用generate series函数 但假期并不遵循特定的模式 因
  • Junit 5 和 IntelliJ“未找到测试”

    问答式问题 因为现有问题与我在此处所做的简单拼写错误不符 Goal 使用 UI 通过 IntelliJ IDE 执行简单的 JUnit 测试 右键单击 运行测试 Problem IntelliJ 表示 未找到测试 Code import o
  • Pygame 表面的 alpha 不影响透明度

    当鼠标未悬停在游戏中时 我试图使用户界面事物变得透明 但由于某种原因 当我设置图像的 alpha 值使其变得透明时 什么也没有发生 这是一些可复制该问题的可运行代码 import pygame WHITE 255 255 255 class
  • 在 R studio 中逐行调试

    有没有办法在R studio环境中逐行调试代码 我知道有断点 下一步 继续等来调试 但我正在寻找像 Visual Studio 中的那样的逐行调试选项 谢谢 对于像我这样习惯了其他 IDE 的 R Studio 新手 a 通过单击边框或按S
  • Pandas:选择每组中的前几行

    我无法解决这个简单的问题 我在这里寻求帮助 我的 DataFrame 如下 我想选择每组 a 中的前两行 df pd DataFrame a pd Series NewYork NewYork NewYork Washington Wash