访问和提取DataFrame中的元素

欢迎关注”生信修炼手册”!

访问元素和提取子集是数据框的基本操作,在pandas中,提供了多种方式。对于一个数据框而言,既有从0开始的整数下标索引,也有行列的标签索引

>>> df = pd.DataFrame(np.random.randn(4, 4), index=['r1', 'r2', 'r3', 'r4'], columns=['A', 'B', 'C', 'D'])
>>> df
           A B C D
r1 -0.220018 -0.398571 0.109313 0.186309
r2 -1.416611 0.826713 0.178174 0.117015
r3 -0.640207 -0.105941 -0.139368 -1.159992
r4 -2.254314 -1.228511 -2.080118 -0.212526

利用这两种索引,可以灵活的访问数据框中的元素,具体的操作方式有以下几种

1. 属性运算符

数据框的每一列是一个Series对象,属性操作符的本质是先根据列标签得到对应的Series对象,再根据Series对象的标签来访问其中的元素,用法如下

# 第一步,列标签作为属性,先得到Series对象
>>> s = df.A
>>> s
r1 -0.220018
r2 -1.416611
r3 -0.640207
r4 -2.254314
Name: A, dtype: float64
# 第二步,在根据下标或者标签访问Series对象中的元素
>>> s.r1
-0.22001819046457136
>>> s[0]
-0.22001819046457136

# 属性操作符,一步法简写如下
>>> df.A.r1
-0.22001819046457136

属性操作符,一次只可以返回一个元素,适用于提取单列或者访问具体标量的操作。

2. 索引运算符

这里的索引运算符,有两种操作方式

  1. 对列进行操作,用列标签来访问对应的列

  2. 对行进行切片操作

列标签的用法,支持单个或者多个列标签,用法如下

# 单个列标签
>>> df['A']
r1 -0.220018
r2 -1.416611
r3 -0.640207
r4 -2.254314
Name: A, dtype: float64

# 当然,你可以在列对应的Series对象中再次进行索引操作,访问对应元素
>>> df['A']['r1']
-0.22001819046457136
>>> df['A'][0]
-0.22001819046457136


# 多个列标签
>>> df[['A', 'B']]
           A B
r1 -0.220018 -0.398571
r2 -1.416611 0.826713
r3 -0.640207 -0.105941
r4 -2.254314 -1.228511

对行进行切片的操作,用法如下

>>> df[:2]
           A         B         C         D
r1 -0.220018 -0.398571  0.109313  0.186309
r2 -1.416611  0.826713  0.178174  0.117015

索引操作符,一次只能访问数据框的一个维度,适用于仅操作一个维度的场景。需要注意的是,当对不存在的列标签设值时,并不会报错,会自动进行append操作,示例如下

>>> df['E'] = 5
>>> df
           A B C D E
r1 0.706160 0.097334 0.241069 -0.412934 5
r2 -0.357353 1.053972 0.052277 -1.459352 5
r3 0.341270 0.551733 2.637333 0.494495 5
r4 1.506536 0.635737 1.083644 1.106261 5

另外,索引操作符支持布尔数组,本质是提取True对应的元素,本次示例如下

>>> df = pd.DataFrame(np.random.randn(4, 4), index=['r1', 'r2', 'r3', 'r4'], columns=['A', 'B&#
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值