导入numpy库,创建DataFrame 数据来做演示。
import numpy as np
data = pd.DataFrame(np.arange(16).reshape(4, 4), index=list('abcd'), columns=list('ABCD'))
print(data)
输出 一个4行,4列的示例数据,行索引为index列表,列索为 columns 。
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
1. 依据行索引名称取某一行的值 , 使用 lco[行索引名称]
print(data.loc['b']) # 第2行数据, 每列都包含
2. 依据索引号取行数据, ilco[行索引号]
print(data.iloc[1]) # 也是第2行数据
都是输出:
A 4
B 5
C 6
D 7
Name: b, dtype: int32
3. 利用loc、iloc提取列数据
print(data.loc[:, ['A']]) # 所有行, A 列
行索引 前后都不填写, :(一个冒号),取所有行数据。后面所以只有列索引A, 所以提取A列数据
输出:
A
a 0
b 4
c 8
d 12
4. 提取取多列数据
print(data.loc[:, ['A', 'B']]) # 所有行, A ,B 列
输出
A B
a 0 1
b 4 5
c 8 9
d 12 13
也可以使用索引号的值,取多列数据:
print(data.iloc[:, [0, 3]])
所有行数据,取第1列和第4列数据。
输出
A D
a 0 3
b 4 7
c 8 11
d 12 15
5. 提取指定区域的数据
print(data.loc[['a', 'c'], ['A', 'B']])
在列表中指定行,列。如a ,c 行,A,B列数据。
输出:
A B
a 0 1
c 8 9
也可以按照索引号值取某些行,某些列的值,
print(data.iloc[[0, 1], [0, 2]]) # 第1, 2行 ,第1列与第3列数据
输出:
A C
a 0 2
b 4 6
6. 提取所有数据
print(data.loc[:])
或者
print(data.iloc[:])
7. 根据条件取数据行
print(data.loc[data['A'] == 0]) # 筛选A列中数字为0 所在行的数据
A 列包含数据0 的行
输出
A B C D
a 0 1 2 3
同理
print(data.loc[data['B'] == 5]) # 筛选B列中数字为5 所在行的数据
A包含数据5的行
A B C D
b 4 5 6 7
8.多条件筛选
print(data.loc[(data['A'] == 0) & (data['C'] == 2)])
A列包含0 且 C列包含2 的数据行
输出:
A B C D
a 0 1 2 3
网友评论