W
e
l
c
o
m
e
: )

9.Pandas索引和切片

索引和切片:

Series的打印效果,让我们感觉它像个二维表格,实际上它还是一维的,其索引和numpy的一维数组比较类似,但还是有点区别的。

Series操作:

se = pd.Series(np.linspace(1, 4, 5), index=list('abcde'))
print(se)

# 索引取值
print('-----索引取值')
print(se['b'])

# 切片
print('-----切片元素')
print(se[2:4])

# 根据索引顺序,值进行排序,取值
print('------根据索引顺序,值进行排序取值')
print(se[['b', 'c', 'd']])

# 逐个值对比
print(se > 2)

# 原值进行修改
print('原值进行修改')
se['b':'c'] = 10
print(se)



#------
a    1.00
b    1.75
c    2.50
d    3.25
e    4.00
dtype: float64
-----索引取值
1.75
-----切片元素
c    2.50
d    3.25
dtype: float64
------根据索引顺序,值进行排序取值
b    1.75
c    2.50
d    3.25
dtype: float64
a    False
b    False
c     True
d     True
e     True
dtype: bool
a     1.00
b    10.00
c    10.00
d     3.25
e     4.00
dtype: float64

注意:如果你的Series是显式的整数索引,那么s[1]这样的取值操作会使用显式索引,而s[1:3]这样的切片操作却会使用隐式索引。

DataFrame操作:

df = pd.DataFrame(np.arange(16).reshape(4, 4), index=list('abcd'), columns=list('efgh'))
print('原DataFrame')
print(df)

# 默认按照列索引
print('按照列e索引取值')
print(df['e'])

# 按照行索引取值
# 这里是不能直接按照行索引进行取值的
# KeyError: 'a'
# print(df['a'])
# 可以这样取
print('# 按照行切loc')
print(df.loc['c'])
# 或者
print('# 按照行切iloc')
print(df.iloc[:1:])


#------
原DataFrame
    e   f   g   h
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15
按照列e索引取值
a     0
b     4
c     8
d    12
Name: e, dtype: int32
# 按照行切loc
e     8
f     9
g    10
h    11
Name: c, dtype: int32
# 按照行切iloc
   e  f  g  h
a  0  1  2  3
posted @ 2020-04-23 10:16  水一RAR  阅读(96)  评论(0编辑  收藏  举报