数据选择
1.行的选取
例:取df的0到3行:
rows=df[0:3]
2.列的选取
例:取‘商品’、‘价格’两列
cols=df[['商品','价格']]
3.块的选取
df.ix[0:3,['商品','价格']]
4.条件过滤
在方括号中加入判断条件来过滤行,条件必须返回True或False。
df[(df['价格']<100) & (df['成交量']>10000)]
数据初步探索
对数据进行部分展示:
-
head(n)
:显示前n个样本 -
tail(n)
:显示末尾n个样本 -
sample(n)
:随机显示n个样本,默认为5
数据类型与类型转换
数据类型
数值型dtype命名方式:类型名+位长,如:float64(8字节浮点型)
涉及到大数据集时,我们就需要考虑指定一个合适的数据类型(比如int32完全满足存储的情况下就坚决不用更占内存的object类型),使得数据在内存和磁盘中的存储占用较小。
通过DataFrame对象的dtypes属性,我们可以得到各个特征的数据类型。
df.dtypes
当一个Series只包含字符串或者包含多个数据类型的数据时,它的dtype是object类型。
若未指定数据类型,默认数值型为int64或float64。
类型转换
通过astype()
方法来实现。
如果是对多列进行转换,那么我们可以通过向astype()
方法传入一个字典来实现。
df = df.astype({'B':'int8', 'G':'int32'})
数据筛选
Pandas对象有select_dtypes()
方法可以筛选出特定数据类型的特征。
参数:
- include:包含
- exclude:不包含
df.select_dtypes(include=['number'])
df.select_dtypes(exclude=['number'])
上面代码中,number
表示数值型特征,包含datetime
和timedelta
类型。
描述性统计
基本统计描述函数使用,例如:
df.mean(0)
#对索引列求平均值
df.mean(1)[:5]
#对第一列前五行求平均值
常用的描述性统计函数:
函数 | 描述 | 函数 | 描述 |
---|---|---|---|
count | 非缺失样本(NA)的数量 | sum | 加和 |
mean | 均值 | mad | 平均绝对偏差(Mean absolute deviation) |
median | 中位数 | min | 最小值 |
max | 最大值 | mode | 众数 |
abs | 绝对值 | prod | 乘积 |
std | Bessel-corrected标准差 | var | 无偏方差 |
sem | 平均标准误差 | skew | 偏度 (三阶矩) |
kurt | 峰度 (四阶矩) | quantile | 分位数 |
cumsum | 累和 | cumprod | 累积 |
cummax | 累积最大值 | cummin | 累积最小值 |
算术运算
算术运算和数据对齐
Pandas对象在进行加减乘除二元运算时,会自动根据索引对齐数据。
二元运算方法add()、sub()、mul()和div()分别表示加减乘除(注意乘法是对应元素相乘,而不是矩阵乘法)
可以使用axis
参数指定沿行还是沿列进行计算。
-
axis=1
:沿行; -
axis=0
:沿列;
算术运算默认axis=1
,述性统计方法默认axis=0
。
广播行为(Broadcasting Behavior)
广播行为可以理解为一种匹配行为。
在默认情况下,DataFrame和Series之间的算术运算会将Series的索引匹配到DataFrame的列,然后沿着行一直向下传播。
汇总统计
四种常用的汇总统计方法:
describe()
对于数值型数据,自动计算Series对象和DataFrame对象各特征的均值、标准差、最小值、最大值以及分位数(某个百分比对应的值)。
可以通过percentiles
参数设置显示哪几个分位数:
df.describe(percentiles=[.05, .5, .95])
#设置分位数为5%,50%,95%
对于非数值型数据,它将统计数据个数、唯一值的个数、频数最高的值、最高频数信息。
如果一个DataFrame对象既包括了数值型特征又包括了非数值型特征,那么describe()
方法将默认只对数值型特征进行汇总统计。
也可以传入'all'
表示对所有特征进行汇总统计。
df.describe(include='all')
info()
此方法能给出各列数据的类型、非空值数量和总体样本数,还能计算占用的内存空间。
cov()
求解协方差
corr()
求解相关系数,值域为[-1,1]。
相关系数为正值,说明一个特征变大另一个变量也变大;取负值说明一个特征变大另一个变量变小,取0说明两个特征没有相关关系。同时,相关系数的绝对值越接近1,线性关系越显著。
通常情况下,当相关系数的绝对值大于(N为样本点的数量)时,我们认为线性关系是存在的。
网友评论