Pandas DataFrame 结构对象测试(1)
创建一个DataFrame 结构对象
data = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c'])
print(data)
输出:
A B C
a 1 4 7
b 2 5 8
c 3 6 9
从输出可以看出,index 中元素为行索引名称, 字典的键为列索引名称,字典的值为DaraFrame的值,3行3列。
使用ioc属性,依据行,列索引名称获取对应值。
print(data.loc['a', 'A']) 输出:1
print(data.loc['a', 'C']) 输出:7
取一个范围的值,使用列表指定行,列范围
print(data.loc['a':'c', 'B']) # B列的值,因为指定了行a到行c,B列
输出:
a 4
b 5
c 6
Name: B, dtype: int64
同样,不指定行索引,即所有的行,如下:
print(data.loc[:, 'B']) # 也是B列的值
可以同时指定行,列索引范围
print(data.loc['a':'c', 'A':'B']) # A,B列的值
输出:
A B
a 1 4
b 2 5
c 3 6
行列索引可以任意指定
print(data.loc['b':'c', 'A':'B']) # 第2,3 行 A,B列的值,
输出:
A B
b 2 5
c 3 6
iloc()的使用,依据行列索引号取值
print(data.iloc[1, 2]) # 第2行 第3列的数据, 索引默认从0开始
输出: 8
也可以取区域值,取区域使用列表传行列名称的索引值
print(data.iloc[1:3, 0:3]) # 第2 行到第3行(开区间,不包含第4行),第1列 到第3列的区间数据
输出:
A B C
b 2 5 8
c 3 6 9