pandas模块(3)

3.1重新索引

pandas对象的⼀个重要⽅法是reindex,其作⽤是创建⼀个新对象,它的数据符合新的索引,如下:

In	[91]:	obj	=	pd.Series([4.5,	7.2,	-5.3,	3.6],	index=['d',	'b',	'a',	'c'])
In	[92]:	obj
Out[92]:	
d				4.5
b				7.2
a			   -5.3
c				3.6
dtype:	float64
⽤该 Series reindex 将会根据新索引进⾏重排。如果某个索引值 当前不存在,就引⼊缺失值:
In	[93]:	obj2	=	obj.reindex(['a',	'b',	'c',	'd',	'e'])
In	[94]:	obj2
Out[94]:	
a			   -5.3
b				7.2
c				3.6
d				4.5
e				NaN
dtype:	float64
对于时间序列这样的有序数据,重新索引时可能需要做⼀些插值处理。 method 选项即可达到此⽬的。下面列出reindex函数的各参数及说明:
参数说明
index用作索引的新序列。既可以是Index实例,也可以是其他序列型的Python数据结构。Index会被完全使用,就像没有任何复制一样
fill_value在重新索引的过程中,需要引入缺失值时使用的替代值
limit前向或后向填充时的最大填充量
method插值(填充)方式,具体参数请参见表5-4
tolerance向前后向后填充时,填充不准确匹配项的最大间距(绝对值距离)
level在Multilndex的指定级别上匹配简单索引,否则选取其子集
copy默认为True,无论如何都复制;如果为False,则新旧相等就不复制

3.2删除指定轴的项

   丢弃某条轴上的⼀个或多个项很简单,只要有⼀个索引数组或列 表即可。由于需要执⾏⼀些数据整理和集合逻辑,所以drop⽅法 返回的是⼀个在指定轴上删除了指定值的新对象:

In	[105]:	obj	=	pd.Series(np.arange(5.),	index=['a',	'b',	'c',	'd',	'e'])
In	[106]:	obj
Out[106]:	
a				0.0
b				1.0
c				2.0
d				3.0
e				4.0
dtype:	float64
In	[107]:	new_obj	=	obj.drop('c')
In	[108]:	new_obj
Out[108]:	
a				0.0
b				1.0
d				3.0
e				4.0
dtype:	float64
对于 DataFrame ,可以删除任意轴上的索引值。
在drop时⼩⼼使⽤ inplace ,它会销毁所有被删除的数据。
3.3算术⽅法
下表列出Series和DataFrame的算数方法 。它们每个都有⼀ 个副本,以字⺟ r 开头,它会翻转参数。
方法说明
add,radd用于加法(+)的方法
sub,rsub用于减法(-)的方法
div, rdiv用于除法(/)的方法
floordiv, rfloordiv用于底除(I)的方法
mul,rmul用于乘法(*)的方法
pow,rpow用于指数(**)的方法

3.4 汇总和计算描述统计

pandas对象拥有⼀组常⽤的数学和统计⽅法。它们⼤部分都属于约简和汇总统计,⽤于从Series中提取单个值(如 sum 或mean)或从 DataFrame 的⾏或列中提取⼀个 Series
In	[230]:	df	=	pd.DataFrame([[1.4,	np.nan],	[7.1,	-4.5],[np.nan,	np.nan],	

      [0.75,	-1.3]],	index=['a',	'b',	'c',	'd'],columns=['one',	'two'])																																												
In	[231]:	df
Out[231]:	
		one		two
a		1.40	NaN
b		7.10   -4.5
c		NaN		NaN
d		0.75   -1.3

#调⽤DataFrame的sum⽅法将会返回⼀个含有列的和的Series:
In	[232]:	df.sum()
Out[232]:	
one			9.25
two		   -5.80
dtype:	float64

#传⼊axis='columns'或axis=1将会按⾏进⾏求和运算:
In	[233]:	df.sum(axis=1)
Out[233]:
a			1.40
b			2.60
c			NaN
d		   -0.55
有些⽅法(如 idxmin idxmax)返回的是间接统计(⽐如达到最小值或最⼤值的索引),另⼀些⽅法则是累计型的。
#间接
In	[235]:	df.idxmax()
Out[235]:	
one				b
two				d
dtype:	object
#累计
In	[236]:	df.cumsum()
Out[236]:	
		one		two
a		1.40	NaN
b		8.50	-4.5
c		NaN		NaN
d		9.25	-5.8
还有⼀种⽅法,它既不是约简型也不是累计型。 describe 就是⼀个例⼦,它⽤于⼀次性产⽣多个汇总统计。比如:
In	[237]:	df.describe()
Out[237]:	
			    one			two
count		    3.000000	2.000000
mean			3.083333	-2.900000
std				3.493685	2.262742
min				0.750000	-4.500000
25%				1.075000	-3.700000
50%				1.400000	-2.900000
75%				4.250000	-2.100000
max				7.100000	-1.300000
所有与描述统计相关的⽅法如下:
方法说明
count非NA值的数量
describe针对Series或各DataFrame列计算汇总统计
min、max计算最小值和最大值
argmin、argmax计算能够获取到最小值和最大值的索引位置(整数)
idxmin、idxmax计算能够获取到最小值和最大值的索引值
quantile计算样本的分位数(o到1)
sum值的总和
mean值的平均数
median值的算术中位数((50%分位数)
mad根据平均值计算平均绝对离差
var样本值的方差
std样本值的标准差
skew样本值的偏度(三阶矩)
kurt样本值的峰度(四阶矩)
cumsum样本值的累计和
cummin、cummax样本值的累计最大值和累计最小值
cumprod样本值的累计积
diff计算一阶差分(对时间序列很有用)
pct_change计算百分数变化

本章节学习完毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值