zoukankan      html  css  js  c++  java
  • 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"   # 也是错误的,越界了

  • 相关阅读:
    Git在window的使用(TortoiseGit)之一
    redis——学习之路五(简单的C#使用redis)
    Redis——学习之路四(初识主从配置)
    Redis——学习之路三(初识redis config配置)
    Redis——学习之路二(初识redis服务器命令)
    Redis——学习之路一(初识redis)
    博客搬家通知
    JAVA WEB项目中使用并改造editor.md实现Markdown编辑器
    SQLite及ORMlite在WebApp中的使用
    日期选择插件clndr的使用
  • 原文地址:https://www.cnblogs.com/cymwill/p/8496920.html
Copyright © 2011-2022 走看看