pandas 如何删掉第一行_Python:Pandas – 按组删除第一行
您可以使用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 – 按组删除第一行相关推荐
- 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 ...
- 计算机删掉另一个用户名,计算机其他怎么删除
如何删除电脑里的其他 win7删除计算机其他选项里面图标的方法:1.点开始--在运行框中输入regedit,按回车键;2.依次展开HKEY_CURRENT_USER\Software\Microsof ...
- 按shift+delete键删掉的文件如何恢复?不慎删除的文件怎么恢复
按shift+delete键删掉的文件如何恢复?按shift+delete键删除文件,很怕出误删除的情况,因为不能通过回收站恢复了,怎么恢复呢?别着急,和小编一起往下看看具体的恢复方法. 按shift ...
- android os能删掉那,安卓手机哪些系统软件可以删除?
安卓手机哪些系统软件可以删除?想必很多人选择ROOT的直接原因就是系统自带软件太多了,不仅占用空间,而且影响运行速度,甚至后台运行,浪费流量. 虽然ROOT后精简系统可以空出很多存储空间,可以省电和提 ...
- python读取文件第一行_python读取文件首行和最后一行
python读取文件最后一行两种方式 1)常规方法:从前往后依次读取 步骤:open打开文件. 读取文件,把文件所有行读入内存. 遍历所有行,提取指定行的数据. 优点:简单,方便 缺点:当文件大了以后 ...
- pandas 如何删掉第一行_Pandas-数据筛选
我们对 pandas 有了初步的认识,今天我们来学习一些 pandas 中更高阶的知识点. 数据筛选 还是以上一关的2019年销售数据.csv为例,我们想要筛选出那些总销售额低于平均值的销售员,同样也 ...
- pandas 如何删掉第一行_pandas删除指定行详解
pandas删除指定行详解 在处理pandas的DataFrame中,如果想像excel那样筛选,只要其中的某一行或者几行,可以使用isin()方法来实现,只需要将需要的行值以列表方式传入即可,还可传 ...
- python读取csv最后一行_Python pandas Dataframe来自csv的第一行和最后一行
全部 – 我期待从一个非常大的csv的第一行和最后一行创建一个pandas DataFrame.本练习的目的是能够轻松地从这些csv文件中的第一个和最后一个条目中获取一些属性.我使用以下方法抓住csv ...
- python pandas读取csv文件指定行_python pandas获取csv指定行 列的操作方法
python pandas获取csv指定行 列的操作方法 pandas获取csv指定行,列 house_info = pd.read_csv('house_info.csv') 1:取行的操作: ho ...
最新文章
- html webservice数据交互_一种基于WebService的数据交换方法
- 服务器账户登录监控系统,服务器账户登录监控系统
- SAP Spartacus B2B table的配置信息的merge原理
- 香港中文大学(深圳)吴保元教授课题组博士后招聘
- NLP之路-Deep Learning in NLP (一)词向量和语言模型
- Linux ext3默认块大小,linux – ext3 / ext4物理块大小视图
- android os自动联网,联网设置指南
- android实例教程_改造Android示例教程
- XenApp / XenDesktop 7.6 初体验一 安装, 配置站点和序列号服务器
- IT 接口对接:足迹第十二步接口对接的定义(接口对接分三种:中间库方式的接口对接,Rest格式URL对接和HTTP格式URL对接;)
- 摆脱“咖喱味”,让Win11的右键菜单回归经典
- 甲骨文最新改邮箱、改账户名、改密码教程
- 深度linux 安装qq游戏,深度操作系统20下载
- 《赢在用户-Web人物角色创建和应用实践指南》
- UNIX环境高级编程(第三版 源码及编译好的静态库文件)
- MSSQL数据库一对多和多对一查询的转换
- PowerDesigner 添加字段和表名备注
- “应用程序配置不正确,程序无法启动”详细举例(vc2008 sp1)
- 有点想法系列:借助海尔平台打造智能家居的一点想法
- 金蝶云星空操作按钮点击