前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Data Science | Pandas基础(二)

Data Science | Pandas基础(二)

作者头像
咸鱼学Python
发布2019-10-09 15:42:38
5110
发布2019-10-09 15:42:38
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python
Pandas数据结构Series-基本技巧
数据查看
代码语言:javascript
复制
#查看前五的数据
s = pd.Series(np.random.rand(15))
print(s.head())   #默认查看数据前五条
# 查看后5条数据
print(s.tail())   #默认查看数据的后五条
# 查看前10条数据
print(s.head(10))
重新索引

重新索引的作用是根据新的索引重新排序,若新的索引不存在则引入缺失值。

代码语言:javascript
复制
# .reindex将会根据索引重新排序,如果当前索引不存在,则引入缺失值
s = pd.Series(np.random.rand(5),index=['a','b','c','d','e'])
print(s)
# 将索引值修改为['c','d','a','f']
s1 =  s.reindex(['c','d','a','f'])
print(s1)
>>>
a    0.972218
b    0.820531
c    0.940448
d    0.009572
e    0.462811
dtype: float64
c    0.940448
d    0.009572
a    0.972218
f         NaN
dtype: float64

如果不想引入缺失值可以使用fill_value指定不存在的索引值为0或其他值

代码语言:javascript
复制
s2 = s.reindex(['c','d','a','f','aaaaa'], fill_value=0)
print(s2)
>>>
c        0.940448
d        0.009572
a        0.972218
f        0.000000
aaaaa    0.000000
dtype: float64
数据对齐

对齐两列数据,当数据索引不同时存在需要对齐的Series的时,数据值以缺失值填充。

代码语言:javascript
复制
# Series 和 ndarray 之间的主要区别是,Series 上的操作会根据标签自动对齐
# 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)
>>>
jack     1.261341
marry    0.806095
tom           NaN
wang          NaN
dtype: float64
删除

使用.drop删除元素的时候,默认返回的是一个副本(inplace=False)

代码语言:javascript
复制
s = pd.Series(np.random.rand(5), index = list('ngjur'))
print(s)
s1 = s.drop('n')
s2 = s.drop(['g','j'])
print(s1)
print(s2)
print(s)
>>>
n    0.876587
g    0.594053
j    0.628232
u    0.360634
r    0.454483
dtype: float64
g    0.594053
j    0.628232
u    0.360634
r    0.454483
dtype: float64
n    0.876587
u    0.360634
r    0.454483
dtype: float64
n    0.876587
g    0.594053
j    0.628232
u    0.360634
r    0.454483
dtype: float64
添加

方法一:直接通过下标索引/标签index添加值

代码语言:javascript
复制
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)
>>>
0    0.516447
1    0.699382
2    0.469513
3    0.589821
4    0.402188
dtype: float64
n    0.615641
g    0.451192
j    0.022328
u    0.977568
r    0.902041
dtype: float64
0      0.516447
1      0.699382
2      0.469513
3      0.589821
4      0.402188
5    100.000000
dtype: float64
n      0.615641
g      0.451192
j      0.022328
u      0.977568
r      0.902041
a    100.000000
dtype: float64

方法二:使用.append()方法添加,可以直接添加一个数组,且生成一个新的数组,不改变之前的数组。

代码语言:javascript
复制
s3 = s1.append(s2)
print(s3)
print(s1)
>>>
0      0.238541
1      0.843671
2      0.452739
3      0.312212
4      0.878904
5    100.000000
n      0.135774
g      0.530755
j      0.886315
u      0.512223
r      0.551555
a    100.000000
dtype: float64
0      0.238541
1      0.843671
2      0.452739
3      0.312212
4      0.878904
5    100.000000
dtype: float64
修改

series可以通过索引直接修改,类似序列

代码语言:javascript
复制
s = pd.Series(np.random.rand(3), index = ['a','b','c'])
print(s)
s['a'] = 100
s[['b','c']] = 200
print(s)
>>>
a    0.873604
b    0.244707
c    0.888685
dtype: float64
a    100.0
b    200.0
c    200.0
dtype: float64
巩固练习
  1. 如图创建Series,并按照要求修改得到结果
  1. 已有s1,s2(值为0-10的随机数),请求出s1+s2的值
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据查看
  • 重新索引
  • 数据对齐
  • 删除
  • 添加
  • 修改
  • 巩固练习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档