如何对 DataFrame 中数组型列的每行元素进行前 N 项截取

发布时间 - 2026-02-02 00:00:00    点击率:

本文介绍在 pandas 中高效截取 dataframe 某列(元素为 python 列表)中每行数组的前 n 个元素的方法,适用于嵌套列表结构的数据清洗与特征预处理场景。

当 DataFrame 的某一列(或多个列)存储的是 Python 列表(如 [[1,2,3,4], [2,2,3,3]]),而你需要统一截取每行列表的前 n 个元素时,最简洁、向量化且安全的方式是使用 .str 访问器配合切片操作——尽管列中存储的是列表而非字符串,Pandas 的 .str 访问器对可迭代序列(包括 list、tuple、numpy.ndarray 等)同样支持索引与切片。

✅ 正确做法(推荐)

n = 2
result = df.apply(lambda x: x.str[:n])
print(result)

输出:

       a       b
0  [1, 2]  [6, 7]
1  [2, 2]  [6, 6]

⚠️ 注意事项:

  • .str[:n] 能安全处理空列表([])、长度不足 n 的列表(自动截取全部,不报错),具有良好的鲁棒性;
  • 该方法要求列中所有元素均为可切片的序列类型(如 list, tuple, np.ndarray),若混入 None、标量或不可迭代对象,会触发 AttributeError;
  • 若需仅处理特定列(如只处理 'a' 列),可直接作用于单列:df['a'] = df['a'].str[:n];
  • 避免使用 df.applymap() 或逐行 for 循环,性能低且易出错。

? 替代方案(显式映射,更直观但略冗长):

df[['a', 'b']] = df[['a', 'b']].applymap(lambda x: x[:n] if isinstance(x, (list, tuple)) else x)

但 applymap 在 Pandas 2.1+ 已弃用,推荐统一使用 .str 访问器。

? 小结:利用 Pandas 对序列类型的 .str 统一接口进行切片,是处理数组型列截断任务的首选方案——简洁、高效、健壮,且天然兼容缺失值与变长数组。


# python  # app  # 数据清洗  # 可迭代对象  # numpy  # pandas  # for  # 字符串  # 循环  # 接口  # 访问器  # 切片  # 对象  # 的是  # 迭代  # 多个  # 均为  # 适用于  # 报错  # 而非  # 可直接  # 而你  # 具有良好 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  电商网站制作价格怎么算,网上拍卖流程以及规则?  如何在Ubuntu系统下快速搭建WordPress个人网站?  企业网站制作这些问题要关注  如何快速搭建支持数据库操作的智能建站平台?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  如何在自有机房高效搭建专业网站?  香港服务器WordPress建站指南:SEO优化与高效部署策略  详解Android中Activity的四大启动模式实验简述  Laravel如何配置任务调度?(Cron Job示例)  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何快速完成中国万网建站详细流程?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  郑州企业网站制作公司,郑州招聘网站有哪些?  中山网站推广排名,中山信息港登录入口?  详解Oracle修改字段类型方法总结  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Bootstrap整体框架之CSS12栅格系统  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  香港网站服务器数量如何影响SEO优化效果?  EditPlus中的正则表达式 实战(2)  如何在建站之星绑定自定义域名?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  动图在线制作网站有哪些,滑动动图图集怎么做?  如何快速生成凡客建站的专业级图册?  网站优化排名时,需要考虑哪些问题呢?  详解Android——蓝牙技术 带你实现终端间数据传输  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  原生JS获取元素集合的子元素宽度实例  Laravel如何使用模型观察者?(Observer代码示例)  javascript基于原型链的继承及call和apply函数用法分析  ,怎么在广州志愿者网站注册?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  昵图网官方站入口 昵图网素材图库官网入口  MySQL查询结果复制到新表的方法(更新、插入)  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  大连网站制作公司哪家好一点,大连买房网站哪个好?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  canvas 画布在主流浏览器中的尺寸限制详细介绍  免费视频制作网站,更新又快又好的免费电影网站?  如何在云主机上快速搭建网站?