前面讲了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比较高效,做数据可视化也非常方便,每天都在坚持学习