飞道的博客

Python数据分析--你不得不会的Pandas数据结构Series(下)

281人阅读  评论(0)

前面讲了Pandas中Series的基本数据结构,创建方法以及索引等基本知识,今天我们再来讲一下Series的基本技巧
(1)查看数据
查看Series的数组可以从头开始查看也可以从末尾开始查看

s = pd.Series(np.random.rand(50))#创建Series数据
print(s.head(10))#查看前10个数据
print(s.tail())#查看后5条数据

输出结果:

head()和tail()都是默认查看5条数据

(2)重新索引reindex
.reindex将会根据索引重新排序,如果当前索引不存在,则引入缺失值,也就是说这个函数可以改变Series的index,并自动根据index的值重新排序,当增加索引时,会自动填补空值

s = pd.Series(np.random.rand(3), index = ['a','b','c'])
print(s)
s1 = s.reindex(['c','b','a','d'])
print(s1)

输出结果:

当然了,我们也可以自定义数据来取代空值

s2 = s.reindex(['c','b','a','d'], fill_value = 0)
print(s2)
# fill_value参数:填充缺失值的值

输出结果:

(3)Series对齐
Series数据不同于ndarray,Serie是的操作会根据index自动对齐

s1 = pd.Series(np.random.rand(3), index = ['Jack','Marry','Tom'])
s2 = pd.Series(np.random.rand(3), index = ['Wang','Jack','Marry'])
print(s1+s2)

输出结果:

我们可以看到,两个Series数据中,只有个别index相同,所以合并的时候会自动保存第二个数组中的数据,而不同的index对应的value则为NaN

(4)删除–drop()
drop()函数对于数据清洗十分重要,可以直接删掉缺失值和空值以及特定值。

s = pd.Series(np.random.rand(5), index = list('ngjur'))
print(s)
s1 = s.drop('n')#删掉index=n对应的值
s2 = s.drop(['g','j'])
print(s1)
print(s2)
print(s)

输出结果:

要注意drop()会生成新的Series

(5)添加
添加数值可以通过下标索引/index索引直接添加,也可以通过append()方法添加

s1 = pd.Series(np.random.rand(5))
s2 = pd.Series(np.random.rand(5), index = list('ngjur'))
print(s1)
print(s2)
s1[5] = 100
s2['a'] = 100
print(s1)
print(s2)
print('-----')
# 直接通过下标索引/标签index添加值

输出结果:

通过下标索引/index索引直接添加呢会改变原来Series 的结构,但是通过append添加则是生成新的Series

s3 = s1.append(s2)
print(s3)
print(s1)

输出结果:

今天的分享就到这里啦,明天我们讲一下DataFrame,有问题的话可以私聊我哦,看到都会回的,没回就是在写作业啦~

我是一位211高校在读的本科生,是个耿直GIRL,对数据分析比较感兴趣,去年拿到了数学建模国家一等奖,今年参加了美赛还没结果,参加比赛选的题型都是大数据型,用过Excel,Spss,Lingo,MATLAB做数据分析,现在觉得Python比较高效,做数据可视化也非常方便,每天都在坚持学习,对Python数据分析和数据可视化有兴趣的可以关注我哦,每天都会更新的,跟我一起进步呀


转载:https://blog.csdn.net/duohuanxi/article/details/105233982
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场