pandas中关于accessor的骚操作
来自:Python那些事
pandas中accessor功能很强大,可以将它理解为一种属性接口,通过它获得额外的方法。
下面用代码和实例理解一下:
import pandas as pd pd.Series._accessors
对于Series数据结构使用_accessors方法,我们得到3个对象:cat, str, dt。
- .cat:用于分类数据(Categorical data)
- .str:用于字符数据(String Object data)
- .dt:用于时间数据(datetime-like data)
1.str对象的使用
Series数据类型:str字符串
addr = pd.Series([ 'Washington, D.C. 20003', 'Brooklyn, NY 11211-1755', 'Omaha, NE 68154', 'Pittsburgh, PA 15211' ]) print(addr)
addr.str.upper()
addr.str.count(r'\d') # \d表示匹配任意数字
关于str对象的2个方法说明:
- Series.str.upper: 将Series中所有字符串变为大写;
- Series.str.count: 对Series中所有字符串的个数进行计数;
除了以上用法外,常用的属性和方法还有.rstrip,.contains,split等,我们通过下面代码查看一下str属性的完整列表:
[i for i in dir(pd.Series.str) if not i.startswith('_')]
2.dt对象的使用
Series数据类型:datetime
因为数据需要datetime类型,所以下面使用pandas的date_range()生成了一组日期datetime演示如何进行dt对象操作。
daterng = pd.Series(pd.date_range('2017', periods=9, freq='Q')) print(daterng)
Series.dt.weekday:从日期判断所处星期数;
time_ser = pd.to_datetime(daterng) for i in time_ser: print(i.weekday()) 或 print(daterng[daterng.dt.weekday])
注意:前面是星期数
Series.dt.quarter:从日期判断所处季节;
print(daterng[daterng.dt.quarter > 2])
Series.dt.is_year_end:从日期判断是否处在年底;
print(daterng[daterng.dt.is_year_end])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)