首页 > 解决方案 > 如何根据一系列列值从数据框中选择行?

问题描述

以下面的示例为例,如果我想选择“WHY”列中与某些“EX”值相对应的所有值,我可以使用 pandas .isin() 函数。

但是,我想根据特定的 EX 值系列选择行。在下面的示例中,我只想选择第 4-7 行。我怎样才能做到这一点?

import numpy as np
import pandas as pd

x_values = [1,3,5,7,9,11,13,12,11,10,9,8,7,8,9,10,12,14,16,18]
y_values = np.arange(103,123)
df = pd.DataFrame(list(zip(x_values, y_values)), columns = ['EX', 'WHY'])

    EX  WHY
0    1  103
1    3  104
2    5  105
3    7  106
4    9  107
5   11  108
6   13  109
7   12  110
8   11  111
9   10  112
10   9  113
11   8  114
12   7  115
13   8  116
14   9  117
15  10  118
16  12  119
17  14  120
18  16  121
19  18  122 

对于这个数据框,

df[df['EX'].isin([9,11,13,12])]['WHY']

给出:

4     107
5     108
6     109
7     110
8     111
10    113
14    117
16    119

标签: pythonpandasdataframeindexing

解决方案


推荐阅读