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])

 

posted @   做梦当财神  阅读(1408)  评论(0编辑  收藏  举报
编辑推荐:
· 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)
点击右上角即可分享
微信分享提示