Python Series库Api整理

Series对比numpy,它更像是字典属性的数据结构,每一行都有各自的key。

Series快速初始化
import pandas as pd

#创建4行的Series,每一行是一个数字,默认索引是0~3
pd.Series([1,2,3,4])  >>>   0    1
							1    2
							2    3
							3    4
							
#创建2行的Series,每一行是一个列表
pd.Series([[1,2,3,4],[5,5,5,5]])   >>>  0    [1, 2, 3, 4]
										1    [5, 5, 5, 5]

#从字典创建Series
pd.Series({"a":1,"b":2,"c":3,"d":4})	
>>> a    1
	b    2
	c    3
	d    4

#从numpy创建Series
pd.Series(np.arrange(4))
>>> 0    1
	1    2
	2    3
	3    4

#指定index
pd.Series([1,2,3,4],index=['a','b','c','d'])  
>>> a    1
	b    2
	c    3
	d    4
Series运算
a=pd.Series([1,2,3,4],index=['a','b','c','d'])
#a每一行加上2
a+2		>>> a    3
			b    4
			c    5
			d    6

#两个Series相加,会让每个元素对应相加,值得注意的是,会匹配按照index相同的行进行相加
b=pd.Series([1,2,3,4],index=['b','a','c','d'])
a+b		>>> a    3
			b    3
			c    6
			d    8
			
#如果两个Series相加,有index不同的地方,默认会以nan替代,并且取两个Series的并集
c=pd.Series([1,2,3,4],index=['a','b','c','e'])
a+c		>>> a    2.0
			b    4.0
			c    6.0
			d    NaN
			e    NaN
			
#nan的值以0替代
a.add(c,fill_value=0)	>>> a    2.0
							b    4.0
							c    6.0
							d    0
							e    0

#比较运算
a>3		>>> a    False
			b    False
			c    False
			d     True
Series索引
a=pd.Series([1,2,3,4],index=['a','b','c','d'])
#下标索引
a[0]	>>> 1

#index索引
a['a']  >>> 1

#切片索引
a[0:2]	>>> a    1
			b    2

#布尔索引
a<3		>>> a     True
			b     True
			c    False
			d    False
#选取小于3的行
a[a<3]	>>> a    1
			b    2
#选取小于3并且为偶数的行
a[(a<3) & (a%2==0)]	>>> b    2

#花式索引
a[['a','b','d']] >>> a    1
					 b    2
					 d    4
a['a':'c']		 >>> a    1
					 b    2
					 c    3

#需要注意的是如果Series的索引是整数的时候,传入a[i],默认是会以键的方式进行索引,而不是下标,如
a=pd.Series(np.arange(10))[5:]	>>> 5    5
									6    6
									7    7
									8    8
									9    9
#a[5]默认是以键的方式索引
a[5]	>>> 5
#a[4]由于不存在键,会抛出异常
a[4]	>>> KeyError
#这种情况如果要以下标索引,可使用iloc
a.iloc[0]	>>> 5
Series遍历
a=pd.Series([1,2,3,4],index=['a','b','c','d'])
#遍历值
for i in a:
	print(i)
>>> 1
	2
	3
	4
	
#遍历键
for i in a.index:
	print(i)
>>> a
	b
	c
	d

Series缺失值处理
a=pd.Series([np.nan,2,3,4],index=['a','b','c','d'])
#判断每一行是否为nan
a.isnull()	>>> a     True
				b    False
				c    False
				d    False
#丢弃nan的行
a.dropna()	>>> b    2.0
				c    3.0
				d    4.0
#填充nan的值为平均数
a.fillna(a.mean())	>>> a    3.0
						b    2.0
						c    3.0
						d    4.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值