pandas库学习(六) 更灵活的操作

2018-11-02  本文已影响0人  3ni

对于Series来说,不仅仅可以通过Series的索引值来获取数据,也可以使用整数来获取数据,甚至还可以用切片来获取。
obj = Series(np.arange(4.), index=['a', 'b', 'c', 'd'])

a    0.0
b    1.0
c    2.0
d    3.0
dtype: float64

print obj['b']

1.0

print obj[1]结果和上面一样
obj[1:3]

b    1.0
c    2.0
dtype: float64

obj[1:5]不会报错

b    1.0
c    2.0
d    3.0
dtype: float64

obj[['b', 'a', 'd']]

b    1.0
a    0.0
d    3.0
dtype: float64

直接对元素进行筛选:
obj[obj < 2]

a    0.0
b    1.0
dtype: float64

当使用索引值来进行切片时会不一样,它会包含右边的结束点
obj['a':'c']

a    0.0
b    1.0
c    2.0
dtype: float64

也可以利用切片来进行赋值:
obj['a':'c']=5

a    5.0
b    5.0
c    5.0
d    3.0
dtype: float64

对DataFrame进行操作:
data = DataFrame(np.arange(16).reshape((4, 4)),index=['Ohio', 'Colorado', 'Utah', 'New York'],columns=['one', 'two', 'three', 'four'])

          one  two  three  four
Ohio        0    1      2     3
Colorado    4    5      6     7
Utah        8    9     10    11
New York   12   13     14    15

data['two']data[['three', 'one']]data[:2]操作都是可以的
data[data['three'] > 5]

          one  two  three  four
Colorado    4    5      6     7
Utah        8    9     10    11
New York   12   13     14    15

data<5

            one    two  three   four
Ohio       True   True   True   True
Colorado   True  False  False  False
Utah      False  False  False  False
New York  False  False  False  False

data[data<5] = 0比较的同时进行赋值

          one  two  three  four
Ohio        0    0      0     0
Colorado    0    5      6     7
Utah        8    9     10    11
New York   12   13     14    15

data.ix['Colorado',['two','three']]

two      5
three    6
Name: Colorado, dtype: int64

data.ix[['Colorado','Utah'],[3, 0, 1]]并没有改变元素

          four  one  two
Colorado     7    0    5
Utah        11    8    9

data.ix[2]取出第三行数据
data.ix[:'Utah','two']从开始行到索引为'Utah'行中的'two'列中的元素

Ohio        0
Colorado    5
Utah        9
Name: two, dtype: int64

data.ix[data.three > 5,:3]data数据中'three'列的中元素大于5的行,取前面三列

          one  two  three
Colorado    0    5      6
Utah        8    9     10
New York   12   13     14
上一篇下一篇

猜你喜欢

热点阅读