zoukankan      html  css  js  c++  java
  • 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])

  • 相关阅读:
    Vi 和 Vim
    The C Programming Language-Chapter 5 Pointers and Arrays
    C# 4.0开始,泛型接口和泛型委托都支持协变和逆变
    数据库中的锁 and java StampedLock ReadWriteLock
    NetCore and ElasticSearch 7.5
    网关项目 ReverseProxy
    异常捕获&打印异常信息
    刷新:重新发现.NET与未来
    2019 中国.NET 开发者峰会正式启动
    .NET开发者必须学习.NET Core
  • 原文地址:https://www.cnblogs.com/keye/p/9716880.html
Copyright © 2011-2022 走看看