开发工具:jupyter notebook(Python3)
series索引操作
import numpy as np
import pandas as pd
一个Serie对象,其值为随机randn产生的6个浮点数,索引值为A,B,C,D,E,F
ser1 = pd.Series(np.random.randn(6),index=['A','B','C','D','E','F'])
ser1
A -1.917343
B -0.557361
C 0.508091
D 1.489047
E -0.596619
F -0.457463
dtype: float64
1、利用位置索引方法获取索引值C
ser1.iloc[2]
0.5080909750172036
2、利用名称访问索引C
ser1.loc['C']
0.5080909750172036
3、利用位置索引访问索引值C到E
ser1.iloc[2:5]
C 0.508091
D 1.489047
E -0.596619
dtype: float64
4、利用名称索引访问索引值C到E
ser1.loc['C':'E']
C 0.508091
D 1.489047
E -0.596619
dtype: float64
5、利用位置索引访问索引值A,B,E,F
ser1.iloc[[0,1,4,5]]
A -1.917343
B -0.557361
E -0.596619
F -0.457463
dtype: float64
6、利用名称访问索引值A,B,E,F
ser1.loc[['A','B','E','F']]
A -1.917343
B -0.557361
E -0.596619
F -0.457463
dtype: float64
DataFrame索引操作
一个dataframe对象,其值为随机整数,其行索引为A,B,C,D,E,F,列索引为a,b,c,d,e,f
df1 = pd.DataFrame(np.random.randint(0,9,(6,6)),index=['A','B','C','D','E','F'],columns=['a','b','c','d','e','f'])
df1
|
a |
b |
c |
d |
e |
f |
A |
3 |
8 |
3 |
4 |
3 |
5 |
B |
0 |
7 |
2 |
4 |
4 |
1 |
C |
0 |
7 |
3 |
4 |
0 |
8 |
D |
0 |
8 |
6 |
2 |
4 |
6 |
E |
5 |
4 |
8 |
6 |
7 |
4 |
F |
3 |
5 |
1 |
8 |
0 |
1 |
1、找出列索引为f的数据
df1.loc[:,'f']
A 5
B 1
C 8
D 6
E 4
F 1
Name: f, dtype: int32
2、利用名称索引找出列索引为a的数据
df1.loc[:,'a']
A 3
B 0
C 0
D 0
E 5
F 3
Name: a, dtype: int32
3、利用位置索引找出列索引为b的数据
df1.iloc[:,1]
A 8
B 7
C 7
D 8
E 4
F 5
Name: b, dtype: int32
4、找出行索引为A的数据
df1.loc['A']
a 3
b 8
c 3
d 4
e 3
f 5
Name: A, dtype: int32
5、利用位置索引找出行索引为F的数据
df1.iloc[5]
a 3
b 5
c 1
d 8
e 0
f 1
Name: F, dtype: int32
6、利用位置索引找出行索引为B到E,列索引为a到e的数据
df1.iloc[1:5,0:5]
|
a |
b |
c |
d |
e |
B |
0 |
7 |
2 |
4 |
4 |
C |
0 |
7 |
3 |
4 |
0 |
D |
0 |
8 |
6 |
2 |
4 |
E |
5 |
4 |
8 |
6 |
7 |
7、利用名称索引找出行索引为B,D,列索引为c,f的数据
df1.loc[['B','D'],['c','f']]
8、找出行索引为C,E,F,列元素为b到f的数据
df1.loc['C':'F','b':'f']
|
b |
c |
d |
e |
f |
C |
7 |
3 |
4 |
0 |
8 |
D |
8 |
6 |
2 |
4 |
6 |
E |
4 |
8 |
6 |
7 |
4 |
F |
5 |
1 |
8 |
0 |
1 |
布尔索引操作
1、一个Series对象,随机整数,范围0-10,找出其中大于1的数据
ser2 = pd.Series(np.random.randint(0,11,10))
ser2
0 3
1 4
2 10
3 3
4 7
5 3
6 7
7 6
8 8
9 0
dtype: int32
ser3 =ser2>1
ser2[ser3]
0 3
1 4
2 10
3 3
4 7
5 3
6 7
7 6
8 8
dtype: int32
2、一个Dataframe对象,随机整数,范围0-10,找出大于3的数据
df2 = pd.DataFrame(np.random.randint(0,11,(3,4)))
df2
|
0 |
1 |
2 |
3 |
0 |
0 |
6 |
10 |
10 |
1 |
0 |
0 |
9 |
4 |
2 |
5 |
0 |
6 |
1 |
df3 = df2>3
df2[df3]
|
0 |
1 |
2 |
3 |
0 |
NaN |
6.0 |
10 |
10.0 |
1 |
NaN |
NaN |
9 |
4.0 |
2 |
5.0 |
NaN |
6 |
NaN |