DataFrame中的索引分为两大部分:
行索引(index):在输出中是最左边那一列
列索引(columns):在输出中最上面那一行
整体可以分为以下五类:
1、列索引读取列
2、行索引读取行
3、.loc的使用
4、.iloc的使用
5、布尔值索引
import pandas as pd
import numpy as np
d_1 = pd.DataFrame(np.random.randn(6,5),index=list("abcdef"),columns=list("ABCDE"))
print(d_1)
d_2 = pd.DataFrame(np.arange(9).reshape(3, 3), index=list("abc"),columns=list("WZH"))
print(d_2)
#列索引
print(d_1["A"]) #读取单列
print(d_1[["A", "D"]]) #读取多列
print(d_1.A) #读取单列_2
#行索引
print(d_1[0:3]) #利用切片读取多行
print(d_1["a":"c"]) #利用行索引读取
print(d_1["a":"c"][["A", "D"]]) #读取多行多列
#使用 .loc索引
print(d_2.loc["a"]) #.loc使用标签索引
print(d_2.loc[["a", "c"]]) #多行查询
print(d_2.loc[["a", "c"], ["W", "H"]]) #离散多行多列
print(d_2.loc[d_2.index[0:3], ["W", "H"]]) #连续多行离散多列
print(d_2.loc["a": "c", "W": "H"]) #连续多行多列
#.iloc的使用
print(d_2.iloc[0:2]) #获取前两行
print(d_2.iloc[0:2, 0:3]) #获取前2行前3列
print(d_2.iloc[:, 0:2]) #获取所有行,前2列
print(d_2.iloc[0:2, :]) #获取前2行,所有列
#布尔值索引
print(d_1 > 0) #大于0的为 True ,小于0的为 False
print(d_1['A'] > 0) #获取所有A列大于0的行
print(d_1[d_1['A'] > 0]) #打印A列大于0的行的数值
print(d_2[(d_2 > 1) & (d_2 < 10)]) #不同的条件之间需要用括号括起来