pandas 根据列的值选取所有行的示例

  • Post category:Python

下面我来分享一下“pandas根据列的值选取所有行的示例”的完整攻略。

步骤1:导入pandas库

在使用pandas时,需要先导入pandas库。

import pandas as pd

步骤2:读取数据

接下来需要读取数据,这里假设我们有一份CSV格式的数据文件,名为data.csv。

data = pd.read_csv('data.csv')

步骤3:根据列的值选取所有行

我们可以使用DataFrame的loc方法根据某一列的值选取所有行。

# 选取‘age’列值为18的所有行
data.loc[data['age'] == 18]

这里的data[‘age’] == 18是一个逻辑表达式,它会返回一个由True和False组成的布尔型Series对象,用它来进行行标签的筛选即可。

我们也可以进一步选取多个列,筛选多个条件的方法如下:

# 选取‘age’列值为18,‘gender’列值为‘F’的所有行
data.loc[(data['age'] == 18) & (data['gender'] == 'F'), ['name', 'age', 'gender']]

这里的(data[‘age’] == 18) & (data[‘gender’] == ‘F’)表示age列的值为18,gender列的值为F。[‘name’, ‘age’, ‘gender’]是我们想要显示的列名。

示例1:根据股票代码选取所有行

比如我们有一份股票信息表格,包括了股票代码、股票名称、收盘价、涨跌幅等内容,我们现在想要选取某只股票的所有信息。

# 选取股票代码为'000002'的所有行
stock_data.loc[stock_data['code'] == '000002']

示例2:根据时间段和行业选取所有行

比如我们有一份股票信息表格,包括了股票代码、股票所处行业、日期和收盘价等内容,我们现在想要选取某一时间段内某一行业的所有股票信息。

# 选取'healthcare'行业,日期在2021-01-01到2021-03-31之间的所有行
stock_data.loc[(stock_data['trade_date'] >= '2021-01-01') & (stock_data['trade_date'] <= '2021-03-31') & (stock_data['industry'] == 'healthcare')]

这样,我们就能根据列的值选取所有行了。当然,还有很多其他的筛选方法,这里列举的只是其中的一些。希望这份攻略对你有所帮助!