Python数据分析实战笔记—Pandas库简介(3)

本文详细介绍了Python数据分析库Pandas的使用,包括函数应用和映射、排序与排位次、相关性和协方差的计算、处理NaN数据以及等级索引和分级。重点讲解了apply()函数的应用,sort_index()和sort_values()的排序功能,以及如何处理缺失值和创建多级索引。
摘要由CSDN通过智能技术生成

《Python数据分析实战》

1.函数应用和映射

按列或列执行操作的函数:

除了通用函数,用户还可以自己定义函数。
需要注意的是这些函数对一维数组进行计算,返回结果为一个数值。

#函数定义
f = lambda x:x.max()-x.min()
#或者
def f(x):
    return x.max()-x.min()

#用apply()函数可以在DataFrame对象上调用刚定义的函数
frame.apply(f)
>>
ball    12
pen     12
pencil  12
paper   12
dtype: int64

如果你想用函数处理行而不是列,需要axis选项设置为1。

frame.apply(f,axis=1)
>>
red     3
blue    3
yellow  3
white   3
dtype: int64

apply()函数并不是一定要返回一个标量,它还可以返回Series对象,因而可以借助它同时执行多个函数。
每调用一次函数,就会有两个或两个以上的返回结果。

def f(x):
    return pd.Series([x.min(),x.max()],index=['min','max'])

像之前一样,应用这个函数,但是返回结果不再是Series而是DataFrame对象,并且DataFrame对象的行数跟函数返回值的数量相等。

frame.apply(f)
>>
        ball   pen   pencil   paper
min     0       1       2       3
max     12      13      14      15

统计函数:

数组的大多数统计函数根本不用apply,直接调用方法就可以了。例如,sum()和mean()函数分别用来计算DataFrame对象元素之和及它们的均值。

frame.sum()
>>
ball    24
pen     28
pencil  32
paper   36
dtype: int64

frame.mean()
>>
ball    6
pen     7
pencil  8
paper   9
dtype: float64

describe()函数能够计算多个统计量。(超实用功能)

#count是指行数
frame.describe()
>>
        ball        pen         pencil      paper
count   4.000000    4.000000    4.000000    4.000000
mean    6.000000    7.000000    8.000000    9.000000
std     5.163978    5.163978    5.163978    5.163978
min     0.000000    1.000000    2.000000    3.000000
25%     3.000000    4.000000    5.000000    6.000000
50%     6.000000    7.000000    8.000000    9.000000
75%     9.000000    10.000000   11.000000   12.000000
max     12.000000   13.000000   14.000000   15.000000

2.排序和排位次

另外一种使用索引机制的基础操作时排序(sorting)。对数据进行排序通常为必要操作,因此简化它的实现非常重要。

pandas的sort_index()函数返回一个跟原对象元素相同但顺序不同的新对象。

Series对象要排序的索引只有一列,因此操作很简单。

#Ser对象按索引排序
ser = pd.Series([5,0,3,8,4],index=['red','blue','yellow','white','green'])
ser
>>
red         5
blue        0
yellow      3
white       8
green       4
dtype: int64

ser.sort_index()
blue        0
green       4
red         5
whtie       8
yellow      3

输出结果中,各元素按照以字母表顺序升序排序(A-Z)的标签进行排序。这是默认的排序方法,但若指定ascending选项,将其值置为False,则可按照降序排列。

ser.sort_index(ascending=False)
>>
yellow      3
white       8
red         5
green       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值