您可以使用groupby / transform来准备一个布尔掩码,对于您想要的行,该掩码为True,对于您不想要的行,则为False.一旦有了这样的布尔掩码,就可以使用df.loc [mask]选择子DataFrame:

import numpy as np

import pandas as pd

df = pd.DataFrame(

{'ID': [10001, 10001, 10001, 10002, 10002, 10002, 10003, 10003, 10003],

'PRICE': [14.5, 14.5, 14.5, 15.125, 14.5, 14.5, 14.5, 14.5, 15.0],

'date': [19920103, 19920106, 19920107, 19920108, 19920109, 19920110,

19920113, 19920114, 19920115]},

index = range(1,10))

def mask_first(x):

result = np.ones_like(x)

result[0] = 0

return result

mask = df.groupby(['ID'])['ID'].transform(mask_first).astype(bool)

print(df.loc[mask])

产量

ID PRICE date

2 10001 14.5 19920106

3 10001 14.5 19920107

5 10002 14.5 19920109

6 10002 14.5 19920110

8 10003 14.5 19920114

9 10003 15.0 19920115

既然你对效率感兴趣,这里有一个基准:

import timeit

import operator

import numpy as np

import pandas as pd

N = 10000

df = pd.DataFrame(

{'ID': np.random.randint(100, size=(N,)),

'PRICE': np.random.random(N),

'date': np.random.random(N)})

def using_mask(df):

def mask_first(x):

result = np.ones_like(x)

result[0] = 0

return result

mask = df.groupby(['ID'])['ID'].transform(mask_first).astype(bool)

return df.loc[mask]

def using_apply(df):

return df.groupby('ID').apply(lambda group: group.iloc[1:, 1:])

def using_apply_alt(df):

return df.groupby('ID', group_keys=False).apply(lambda x: x[1:])

timing = dict()

for func in (using_mask, using_apply, using_apply_alt):

timing[func] = timeit.timeit(

'{}(df)'.format(func.__name__),

'from __main__ import df, {}'.format(func.__name__), number=100)

for func, t in sorted(timing.items(), key=operator.itemgetter(1)):

print('{:16}: {:.2f}'.format(func.__name__, t))

报告

using_mask : 0.85

using_apply_alt : 2.04

using_apply : 3.70

pandas 如何删掉第一行_Python:Pandas – 按组删除第一行相关推荐

  1. python dataframe 取一行_python – Pandas dataframe获取每个组的第一行

    我有一个pandas DataFrame如下. df = pd.DataFrame({'id' : [1,1,1,2,2,3,3,3,3,4,4,5,6,6,6,7,7], 'value' : [&q ...

  2. 计算机删掉另一个用户名,计算机其他怎么删除

    如何删除电脑里的其他 win7删除计算机其他选项里面图标的方法:1.点开始--在运行框中输入regedit,按回车键;2.依次展开HKEY_CURRENT_USER\Software\Microsof ...

  3. 按shift+delete键删掉的文件如何恢复?不慎删除的文件怎么恢复

    按shift+delete键删掉的文件如何恢复?按shift+delete键删除文件,很怕出误删除的情况,因为不能通过回收站恢复了,怎么恢复呢?别着急,和小编一起往下看看具体的恢复方法. 按shift ...

  4. android os能删掉那,安卓手机哪些系统软件可以删除?

    安卓手机哪些系统软件可以删除?想必很多人选择ROOT的直接原因就是系统自带软件太多了,不仅占用空间,而且影响运行速度,甚至后台运行,浪费流量. 虽然ROOT后精简系统可以空出很多存储空间,可以省电和提 ...

  5. python读取文件第一行_python读取文件首行和最后一行

    python读取文件最后一行两种方式 1)常规方法:从前往后依次读取 步骤:open打开文件. 读取文件,把文件所有行读入内存. 遍历所有行,提取指定行的数据. 优点:简单,方便 缺点:当文件大了以后 ...

  6. pandas 如何删掉第一行_Pandas-数据筛选

    我们对 pandas 有了初步的认识,今天我们来学习一些 pandas 中更高阶的知识点. 数据筛选 还是以上一关的2019年销售数据.csv为例,我们想要筛选出那些总销售额低于平均值的销售员,同样也 ...

  7. pandas 如何删掉第一行_pandas删除指定行详解

    pandas删除指定行详解 在处理pandas的DataFrame中,如果想像excel那样筛选,只要其中的某一行或者几行,可以使用isin()方法来实现,只需要将需要的行值以列表方式传入即可,还可传 ...

  8. python读取csv最后一行_Python pandas Dataframe来自csv的第一行和最后一行

    全部 – 我期待从一个非常大的csv的第一行和最后一行创建一个pandas DataFrame.本练习的目的是能够轻松地从这些csv文件中的第一个和最后一个条目中获取一些属性.我使用以下方法抓住csv ...

  9. python pandas读取csv文件指定行_python pandas获取csv指定行 列的操作方法

    python pandas获取csv指定行 列的操作方法 pandas获取csv指定行,列 house_info = pd.read_csv('house_info.csv') 1:取行的操作: ho ...

最新文章

  1. html webservice数据交互_一种基于WebService的数据交换方法
  2. 服务器账户登录监控系统,服务器账户登录监控系统
  3. SAP Spartacus B2B table的配置信息的merge原理
  4. 香港中文大学(深圳)吴保元教授课题组博士后招聘
  5. NLP之路-Deep Learning in NLP (一)词向量和语言模型
  6. Linux ext3默认块大小,linux – ext3 / ext4物理块大小视图
  7. android os自动联网,联网设置指南
  8. android实例教程_改造Android示例教程
  9. XenApp / XenDesktop 7.6 初体验一   安装, 配置站点和序列号服务器
  10. IT 接口对接:足迹第十二步接口对接的定义(接口对接分三种:中间库方式的接口对接,Rest格式URL对接和HTTP格式URL对接;)
  11. 摆脱“咖喱味”,让Win11的右键菜单回归经典
  12. 甲骨文最新改邮箱、改账户名、改密码教程
  13. 深度linux 安装qq游戏,深度操作系统20下载
  14. 《赢在用户-Web人物角色创建和应用实践指南》
  15. UNIX环境高级编程(第三版 源码及编译好的静态库文件)
  16. MSSQL数据库一对多和多对一查询的转换
  17. PowerDesigner 添加字段和表名备注
  18. “应用程序配置不正确,程序无法启动”详细举例(vc2008 sp1)
  19. 有点想法系列:借助海尔平台打造智能家居的一点想法
  20. 金蝶云星空操作按钮点击

热门文章

  1. 配置apache虚拟主机
  2. Kettle能做什么?
  3. PHP不同域名cookie共享(单点登录实现原理)
  4. Spring MVC - Hello World示例
  5. Visiual Studio2012 CLR20r3问题
  6. js实现倒计时 类似团购网站
  7. Jquery跨域获得Json
  8. 【原】Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...
  9. Python编译成C语言,性能有多暴力?
  10. JSONObject toJSONString错误