DataFrame的索引

一个简单的DataFrame如下

test = pd.DataFrame([[1,2,3,4],[5,6,7,8]],index = ['a','b'],columns = ['A','B','C','D'])

显示如下:

   A  B  C  D
a  1  2  3  4
b  5  6  7  8

DataFrame的列索引可以直接获取数据:

In:test['A']
Out: 
a    1
b    5

Name: A, dtype: int64

注意这里A的引号

但是,

In:test.A

Out: 
a    1
b    5
Name: A, dtype: int64

注意这里不用带引号,否则会报错

In:test.'A'

  File "<ipython-input-36-1b55dced7ffe>", line 1
    test.'A'
           ^

SyntaxError: invalid syntax

行索引需要以这种方式获取:

In:test.loc['a']
Out: 
A    1
B    2
C    3
D    4

Name: a, dtype: int64

还是要注意带引号的问题

取二维索引时,比较有意思的事情是:

先取列索引,后取行索引时可以直接取:

 In:test.A.a

Out: 1

如果反过来就会报错(因为不能取到test.a)

同时,还可以以这样的方式取:

In:test.loc['a']['A']
Out: 1

In:test.loc['a','A']

Out: 1

同样要注意到引号的问题。


改变数据时,行或者列的删除也是有区别的:

列添加:添加一列,直接赋值新的一列即可,如:test['E'] = [9,10]

则test变为  :

   A  B  C  D   E
a  1  2  3  4   9

b  5  6  7  8  10

列删除:pop函数,会返回被删除的列

In:test.pop('E')
Out: 
a     9
b    10

Name: E, dtype: int64

同时test变为:

   A  B  C  D
a  1  2  3  4

b  5  6  7  8

行修改和增加同理,取到要求的索引进行赋值即可,借用到loc

test.loc['a'] = [4,3,9,6]

test.loc['c'] = [9,9,9,9]

test变为:

   A  B  C  D
a  4  3  9  6
b  5  6  7  8
c  9  9  9  9

行删除:用到drop函数

In:test.drop('b')

Out: 
   A  B  C  D
a  4  3  9  6

c  9  9  9  9

注意这里返回了删除之后剩下的DataFrame,注意与列删除的区别

同时,test的值为:

   A  B  C  D
a  4  3  9  6
b  5  6  7  8

c  9  9  9  9

对原值没有影响!!!切记

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值