美文网首页
pandas DataFrame 数据筛选(2)

pandas DataFrame 数据筛选(2)

作者: Ritchie_Li | 来源:发表于2022-08-05 21:32 被阅读0次

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

相关文章

网友评论

      本文标题:pandas DataFrame 数据筛选(2)

      本文链接:https://www.haomeiwen.com/subject/swtmwrtx.html