importpandasaspdimportnumpyasnp# 形成dataframe数据t1=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))#t1
loc
| w | x | y | z |
|---|
| a | 0 | 1 | 2 | 3 |
|---|
| b | 4 | 5 | 6 | 7 |
|---|
| c | 8 | 9 | 10 | 11 |
|---|
| d | 12 | 13 | 14 | 15 |
|---|
# 搜索 索引是a的行t1.loc["a"]
w 0 x 1 y 2 z 3 Name: a, dtype: int32
# 获取 索引是a到b的数据t1.loc["a":"b"]
# 获取 索引是a到d的数据,每间隔2个取数,所以取不到d行t1.loc["a":"d":2]
# 获取 索引是a 列名是z的数据t1.loc["a","z"]
3
# 获取 索引是a-c行数据,和x到z列的数据t1.loc["a":"c","x":"z"]
iloc
# 获取 行下标是0的数据t1.iloc[0]
w 0 x 1 y 2 z 3 Name: a, dtype: int32
# 获取 第0-2行数据,不包含下标是2的数据,也就只能获取2行t1.iloc[0:2]
# 获取列下标是0的列数据t1.iloc[:,0]
a 0 b 4 c 8 d 12 Name: w, dtype: int32
# 获取列名是 w的列数据t1["w"]
a 0 b 4 c 8 d 12 Name: w, dtype: int32
# 获取列下标0-2列的数据t1.iloc[:,0:2]
# 获取 行下标是1-2, 列下标 0-2列的数据t1.iloc[1:2:,0:2]
filter
# 获取列名是x和y的列t1.filter(items=["x","y"])
数据过滤
# 数据过滤, 以t1['w']列>5为条件,获取2行数据t1[t1['w']>5]
# 选择t1['w']>5的行,并只保留"x"和'z'两列t1.loc[t1['w']>=5,["x",'z']]