DataFrame—数据汇总9

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。 

1.创建Series

(1)通过列表list创建Series

s = pd.Series([10,30,20,40])
s

 (2)通过字典dict创建Series

dict_1 = {"a":10,"c":5,"b":40}
s1 = pd.Series(dict_1)
s1

(3)通过数组array创建Series

array_1 = np.arange(10,16)
s2 = pd.Series(array_1,index=list("abcdef"))
s2

2.Series的属性

(1)获得索引index

s2.index

(2)通过赋值整体地修改索引值

s2.index = ["aa","bb","cc","dd","eee","fff"]
s2

(3)修改index的名称

s2.index.name = "banana"
s2

(4)修改Series的名称

s2.name = "length"
s2

(5)获取Series的值values

s2.values

3.Series的索引 index

(1)位置索引

#得到第一行的数
s2[0] 
#得到最后一行的数
s2[-1]  
#得到特定一些行的数(如第1行,第4行,第6行)
s2[[0,3,5]] 

(2)名称索引

#得到索引为aa所对应的数
s2["aa"]
#得到特定一些索引所对应的数
s2[["aa","cc","fff"]]

(3)点索引法

对象不重名的情况

s2.aa

对象重名的情况

s2.index = ["aa","bb","cc","dd","eee","def"]
s2.def
print(s2[5])
print(s2["def"])

4.Series的切片slice

(1)索引位置切片

不包含末端

s2[1:4]

(2)索引名称切片

包含末端

s2["aa":"eee"]

5.修改Series的值

s2["aa"] = 100
s2[2] = 120
s2

6.添加Series的值

(1)通过append来添加

s2.append(pd.Series([50,60],index=["a1","a2"]))

(2)通过方括号[ ]来添加值

s2["y"] = 99
s2

7.删除Series的值

del删除法

#删除y索引对应的99这个值
del s2["y"]
s2

8.过滤Series的值

单条件筛选

s2[s2 > 90]
s2[s2 == 13]

多条件筛选

s2[(s2 > 50) | (s2 < 14)]

9.Series的缺失值处理

#创建一个带有缺失值的Series
s = pd.Series([10,np.nan,15,19,None])
s

(1)判断是否有缺失值

s.isnull()
#如果需要取出这些缺失值,则通过布尔选择器来筛选出来
s[s.isnull()]

(2)删除缺失值

#dropna()会删除掉所有缺失值NaN,并返回一个新的Series
s.dropna()
#如果希望原有的Series发生改变,可以将s.dropna()返回的新Series直接赋值给原来的Series
s = s.dropna()
s

通过过滤的方式来达到一样的删除效果

s = pd.Series([10,np.nan,15,19,None]) #初始化一下s
s[~s.isnull()]  #依然是返回一个新的Series,波浪号~表示否定、非的意思
#通过notnull()也能实现,同样也是返回一个新的Series
s[s.notnull()]

(3)填充缺失值

用指定值填充缺失值

#用0填充缺失值,依然返回的是一个新的Series
s.fillna(value=0)
#如果希望直接修改原Series,一种方法是之前说的直接赋值,另一种是添加参数inplace=True
s.fillna(value=0,inplace=True)

通过插值填充缺失值

#初始化一下s
s = pd.Series([10,np.nan,15,19,None])
s

向前填充(ffill,全称是front fill)

s.fillna(method="ffill")

向后填充(bfill,全称是back fill)

s.fillna(method="bfill")

10.排序

#创建一个Series
s3 = pd.Series([10,15,8,4,20],index=list("gadkb"))
s3

(1)根据索引排序 sort_index()

默认升序排列

s3.sort_index()
s3.sort_index(ascending=False)

(2)根据值排序 sort_values()

默认升序排列

s3.sort_values()

降序排列

s3.sort_values(ascending=False)

11.排名

s4 = pd.Series([2,5,15,7,1,2])
s4

中国式排名

s4.rank(ascending=False,method="dense")

12.Series的描述性统计

#创建一个Series
s5 = pd.Series([100,50,100,75,24,100])
s5
s5.value_counts()

最小值

s5.min()

最大值

s5.max()

中位数

s5.median()

均值

s5.mean()

求和

s5.sum()

标准差

s5.std()

描述性统计

s5.describe().round(1)

13.Series的向量化运算

s5 + 1000
s5 - 2000
s5 * 2
s5 / 10

自动对齐相同索引的数据,不同索引的数据对不上,则显示NaN

s6 = pd.Series([35000,40000,71000,5500],index=list("abcd"))
s7 = pd.Series([222,35000,4000,2222],index=list("aqtb"))
s6 + s7
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值