pandas DataFrame 数据筛选(2)

导入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

你可能感兴趣的:(Python,pandas,python,数据分析)