美文网首页web服务器Pandas
Pandas(索引对象)

Pandas(索引对象)

作者: GHope | 来源:发表于2018-11-10 20:33 被阅读6次

    获取索引对象

    obj = pd.Series(range(3), index=['a', 'b', 'c'])
    
    index = obj.index
    
    索引对象

    Index对象是不可变的,因此用户不能对其进行修改

    index[1] ='d'
    
    索引对象不可变

    不可变可以使Index对象在多个数据结构之间安全共享

    labels = pd.Index(np.arange(3))
    
    obj2 = pd.Series([1.5, -2.5, 0], index=labels)
    
    index对象共享

    基本功能

    pandas对象的一个重要方法是reindex,其作用是创建一个新对象,它的数据符合新的索引。

    obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c'])
    
    obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])
    
    reindex创建新对象

    时间序列这样的有序数据,重新索引时可能需要做一些插值处理。method选项即可达到此目的,例如,使用ffill可以实现前向值填充。

     obj3 = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])
    
    obj3.reindex(range(6), method='ffill')
    
    前向值填充

    reindex可以修改(行)索引和列。只传递一个序列时,会重新索引结果的行。

    frame = pd.DataFrame(np.arange(9).reshape((3, 3)),  
        index=['a', 'c', 'd'],  
        columns=['Ohio', 'Texas', 'California'])
    
    frame2 = frame.reindex(['a', 'b', 'c', 'd'])
    
    重新索引

    列可以用columns关键字重新索引

    states = ['Texas', 'Utah', 'California']
    
    frame.reindex(columns=states) 
    
    列的重新索引

    丢弃指定轴上的项

    drop方法返回的是一个在指定轴上删除了指定值的新对象。

     obj = pd.Series(np.arange(5.), index=['a', 'b', 'c', 'd', 'e'])
    
    new_obj  = obj.drop('c')
    
    obj.drop('a','c')
    
    drop

    对于DataFrame,可以删除任意轴上的索引值

    data = pd.DataFrame(np.arange(16).reshape((4, 4)),
        index=['Ohio', 'Colorado', 'Utah', 'New York'],
        columns=['one', 'two', 'three', 'four'])
    
    data.drop(['Utah','New York'])
    
    删除行

    通过传递axis=1或axis='columns'可以删除列的值

     data.drop('two', axis=1) 
    
    data.drop(['two', 'four'], axis='columns')
    
    利用axis删除列

    相关文章

      网友评论

        本文标题:Pandas(索引对象)

        本文链接:https://www.haomeiwen.com/subject/tghuxqtx.html