python之pandas的基本使用(2)

本文介绍了pandas模块在Python中的高级用法,包括排序和排名、处理索引重复、汇总统计、去重计数、缺失数据处理、多层次索引以及整数型索引的操作。通过示例代码展示了如何使用sort_index、sort_values、rank、dropna、fillna等关键函数,帮助读者深入理解pandas的高效数据操作。
摘要由CSDN通过智能技术生成

python之pandas模块的基本使用(1)

一、排序和排名

  1. 排序:sort_index和sort_values函数

    代码示例:

    print 'Series排序'
    x = Series(range(4), index = ['b', 'a', 'c', 'd'])
    print x.sort_index() # Series按索引排序
    '''
    a    1
    b    0
    c    2
    d    3
    '''
    print x.sort_values() # Series按值排序 
    '''
    b    0
    a    1
    c    2
    d    3
    '''
    
    print 'DataFrame按索引排序'
    frame = DataFrame(numpy.arange(8).reshape((2, 4)),
                      index = ['b', 'a'],
                      columns = list('ABDC'))
    print frame
    '''
       A  B  D  C
    b  0  1  2  3
    a  4  5  6  7
    '''
    print frame.sort_index() # 根据行索引来排序
    '''
       A  B  D  C
    a  4  5  6  7
    b  0  1  2  3
    '''
    print frame.sort_index(axis = 1) #根据列索引来排序
    '''
       A  B  C  D
    b  0  1  3  2
    a  4  5  7  6
    '''
    print frame.sort_index(axis = 1, ascending = False) # 设置降序排序
    '''
       D  C  B  A
    b  2  3  1  0
    a  6  7  5  4
    '''
    print 'DataFrame按列的值排序'
    frame = DataFrame({'b':[4, 7, -3, 2], 'a':[0, 1, 0, 1]})
    print frame
    '''
       a  b
    0  0  4
    1  1  7
    2  0 -3
    3  1  2
    '''
    print frame.sort_values(by = 'b') # 指定b这列的值进行排序
    '''
       a  b
    2  0 -3
    3  1  2
    0  0  4
    1  1  7
    '''
    print frame.sort_values(by = ['a', 'b']) #先a后b进行列的值排序
    '''
       a  b
    2  0 -3
    0  0  4
    3  1  2
    1  1  7
    '''
    
  2. 排名:根据值的大小/出现次数来进行排名,得到一组排名值:rank函数

    这里写图片描述

    print 'rank:默认升序,排名值从1开始'
    obj = Series([4, 2, 0, 4],index = ['a','b','c','d'])
    # 以值从小到大来赋排名值:c:0(1) b:2(2) a:4(3) d:4(4)
    print obj.rank()
    '''
    a    3.5  求平均值(4+3)/2
    b    2.0
    c    1.0
    d    3.5
    '''
    print obj.rank(method = 'first')  # 按出现顺序排名,不求平均值。
    '''
    a    3.0
    b    2.0
    c    1.0
    d    4.0
    '''
    print obj.rank(ascending = False, method = 'max') # 逆序,并取排名值最大值。所以-5的rank是7
    # a:4(1) d:4(2) b:2(3) c:0(4)
    '''
    dtype: float64
    a    2.0
    b    3.0
    c    4.0
    d    2.0
    '''
    frame = DataFrame({'b':[4.3, 7, -3, 2],
                      'a':[0, 1, 0, 1],
                      'c':[-2, 5, 8, -2.5]})
    print frame
    '''
       a    b    c
    0  0  4.3 -2.0
    1  1  7.0  5.0
    2  0 -3.0  8.0
    3  1  2.0 -2.5
    '''
    print frame.rank(axis = 1) # 按行进行排名,默认升序
    '''
         a    b    c
    0  2.0  3.0  1.0
    1  1.0  3.0  2.0
    2  2.0  1.0  3.0
    3  2.0  3.0  1.0
    '''
    

二、索引重复的情况

代码示例:

print '重复索引:进行两次索引'
obj = Series([0,1,2,3,4], index = ['a', 'a', 'b', 'b', 'c'])
print obj.index.is_unique # 判断是非有重复索引
# False
print obj['a'][0]
# 0
print obj.a[1]
# 1
df = DataFrame(numpy.arange(12).reshape(4, 3), index = ['a', 'a', 'b', 'b'])
print df
'''
   0   1   2
a  0   1   2
a  3   4   5
b  6   7   8
b  9  10  11
'''
print df.ix['b'].ix[0] // 两次行索引
'''
0    6
1    7
2    8
Name: b, dtype: int32
'''
print df.ix['b'].ix[1]
'''
0     9
1    10
2    11
Name: b, dtype: int32
'''

三、汇总和计算描述统计

常用方法选项:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值