• pandas的Series


    pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)

    首先介绍一下基本的:

    data : array-like, dict, or scalar value,数组类型
    
    index : array-like or Index (1d),
    
    dtype : numpy.dtype or None
    
    copy : boolean, default False


    初始化时,如果只输入data和index,则得保证两者长度相同,否则报错:
    >>> pd.Series(range(4),index=list("list"))
    l    0
    i    1
    s    2
    t    3
    dtype: int32
    
    >>> pd.Series(range(5),index=list("list"))
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "E:Python3libsite-packagespandascoreseries.py", line 245, in __init__
        data = SingleBlockManager(data, index, fastpath=True)
      File "E:Python3libsite-packagespandascoreinternals.py", line 4070, in __init__
        fastpath=True)
      File "E:Python3libsite-packagespandascoreinternals.py", line 2685, in make_block
        return klass(values, ndim=ndim, fastpath=fastpath, placement=placement)
      File "E:Python3libsite-packagespandascoreinternals.py", line 109, in __init__
        len(self.mgr_locs)))
    ValueError: Wrong number of items passed 5, placement implies 4
    
    >>> pd.Series(range(4),index=list("lists"))
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "E:Python3libsite-packagespandascoreseries.py", line 245, in __init__
        data = SingleBlockManager(data, index, fastpath=True)
      File "E:Python3libsite-packagespandascoreinternals.py", line 4070, in __init__
        fastpath=True)
      File "E:Python3libsite-packagespandascoreinternals.py", line 2685, in make_block
        return klass(values, ndim=ndim, fastpath=fastpath, placement=placement)
      File "E:Python3libsite-packagespandascoreinternals.py", line 109, in __init__
        len(self.mgr_locs)))
    ValueError: Wrong number of items passed 4, placement implies 5
    
    

    创建一个series:

    >>> se = pd.Series(range(5))
    >>> se.name = "values"
    >>> se = pd.Series(range(5),name="values")
    >>> se
    0    0
    1    1
    2    2
    3    3
    4    4
    Name: values, dtype: int32
    # 两者效果等价

    可以更改index:

    >>> se.index
    RangeIndex(start=0, stop=5, step=1)
    
    >>> se.index = list("abcde")
    >>> se
    a    0
    b    1
    c    2
    d    3
    e    4
    Name: values, dtype: int32

    将index列命名:

    >>> se.index.name = "id"
    >>> se
    id
    a    0
    b    1
    c    2
    d    3
    e    4
    Name: values, dtype: int32

    转化为dataframe:

    >>> se.to_frame()
        values
    id
    a        0
    b        1
    c        2
    d        3
    e        4

    选出一个:

    >>> se["b"]
    1
    >>> se.loc["b"]
    1

    但是里面的字符串不能用数字,(否则会被认为是切片操作选择):

    >>> se[1]   # 元素充足时
    1
    
    >>> se[5]   # 元素不足时,报错
    Traceback (most recent call last):
      File "E:Python3libsite-packagespandasindexesase.py", line 2169, in get_value
        tz=getattr(series.dtype, 'tz', None))
      File "pandasindex.pyx", line 98, in pandas.index.IndexEngine.get_value (pandasindex.c:3557)
      File "pandasindex.pyx", line 106, in pandas.index.IndexEngine.get_value (pandasindex.c:3240)
      File "pandasindex.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandasindex.c:4279)
      File "pandassrchashtable_class_helper.pxi", line 732, in pandas.hashtable.PyObjectHashTable.get_item (pandashashtable.c:13742)
      File "pandassrchashtable_class_helper.pxi", line 740, in pandas.hashtable.PyObjectHashTable.get_item (pandashashtable.c:13696)
    KeyError: 5
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "E:Python3libsite-packagespandascoreseries.py", line 603, in __getitem__
        result = self.index.get_value(self, key)
      File "E:Python3libsite-packagespandasindexesase.py", line 2175, in get_value
        return tslib.get_value_box(s, key)
      File "pandas	slib.pyx", line 946, in pandas.tslib.get_value_box (pandas	slib.c:19053)
      File "pandas	slib.pyx", line 962, in pandas.tslib.get_value_box (pandas	slib.c:18770)
    IndexError: index out of bounds
    
    >>> se[5] = "s"   # 也是错误的,越界了

  • 相关阅读:
    Hibernate 4.3.5 JPA实现的常见错误
    Jboss7.1中部署webservice的问题-1
    VS2015 无法启动 IIS Express Web 服务器 解决方案
    Git命令实现本地文件推送到git仓库
    VSCode 首次打开提示“Git installation not found.”解决方案
    VB6 对象库未注册问题
    【使用WCF,发布服务端浏览报错】未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” 中加载类型 “System.ServiceModel.Activation.HttpModule”。
    设计模式一一单例模式
    设计模式一一适配器模式
    .NET Framework 各版本区别(简介)
  • 原文地址:https://www.cnblogs.com/cymwill/p/8496920.html
Copyright © 2020-2023  润新知