添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
import numpy as np df = pd . DataFrame ( { 'code' : '000001.SZ 000002.SZ 000006.SZ 000009.SZ' . split ( ) , 'open' : '1.2 20 3.5 2.8' . split ( ) , 'close' : np . arange ( 4 ) , 'high' : np . arange ( 4 ) * 2 } )

数据如下:

code open close high 0 000001.SZ 1.2 0 0 1 000002.SZ 20 1 2 2 000006.SZ 3.5 2 4 3 000009.SZ 2.8 3 6

问题如下:

  1. 找出code为指定值的行
  2. 找出open>3的行
  3. 找出

找出符合条件的所有行,即条件判断bool值为true,如找出code为000002.SZ的行:

df[df['code'] == '000002.SZ'] # 判断等式是否成立

这会列出所有使得条件 df[‘code’] == ‘000002.SZ’ 为true的所有行,输出如下:

>>> df[df['code'] == '000002.SZ']
        code open  close  high
1  000002.SZ   20      1     2

使用iloc方法,根据索引的位置来查找数据的。这个例子需要先找出符合条件的行所在位置。

mask = df['code'] == '000002.SZ'
pos = np.flatnonzero(mask)
df.iloc[pos]
# 直接根据索引取值
df.iloc[1:2]

输出与之前相同。

适用于DataFrame的行列都是有标签的情形。

# 把要操作的列作为索引
df.index=df['code'] # 将code列作为DataFrame的行索引
df.loc['000002.SZ', :] # 注意,这种根据索引iloc得到的结果不是DataFrame类型,而是Series
# 使用布尔
df.loc[df['code']=='000002.SZ']

结果如下:

>>> df.loc['000002.SZ', :]
code     000002.SZ
open            20
close            1
high             2
Name: 000002.SZ, dtype: object
>>> df.loc[df['code']=='000002.SZ']
                code open  close  high
000002.SZ  000002.SZ   20      1     2

使用API

适用于数据量比较大的情形,方法为:pd.DataFrame.query。

df.query('code=="000002.SZ"')
# 多条件
df.query('code=="000002.SZ" | code=="000006.SZ"')

结果如下:

>>> df.query('code=="000002.SZ"')
                code open  close  high
000002.SZ  000002.SZ   20      1     2
>>> # 多条件
>>> df.query('code=="000002.SZ" | code=="000006.SZ"')
                code open  close  high
000002.SZ  000002.SZ   20      1     2
000006.SZ  000006.SZ  3.5      2     4

除了上面判断相等的情况,也可以结合条件判断一起使用。

  1. 筛选出列值属于某个范围内的行,用isin:df.loc[df['column_name'].isin(some_values)] # some_values是可迭代对象
  2. 多种条件限制时使用&,&的优先级高于>=或<=,所以要注意括号的使用: df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
  3. 筛选出列值不等于某个/些值的行:
df.loc[df['column_name'] != 'some_value']
df.loc[~df['column_name'].isin('some_values')] #~取反

df功能强大,且用且总结。

https://www.cnblogs.com/small-bud/p/12380357.html

在处理数据时,我们经常需要筛选特定范围的数据进分析或处理。Pandas是一个基于NumPy的开源数据分析库,提供了丰富的数据结构和高效的数据操作方法,非常适合处理各种数据任务,包括数据筛选。Pandas的数据筛选功能非常强大,不仅可以根据号进筛选,还可以根据条件、列名等进灵活的数据筛选操作。使用pandas筛选dataframe数据:获取特定范围的数据。如果要获取从第n到最后一的数据,可以使用。如果要获取所有的数据,可以省略号,如。如果要获取前n的数据,可以使用。 Python Pandas中Dataframe对象,如何根据列值筛选满足条件的,并且返回列的索引值,我们举栗子说明一下: 1.先创建一个dataframe变量df: df = pd.DataFrame(np.arange(16).reshape(4,4), #index = pd.date_range('20200301', periods=4), index = list('hjkl'), columns = list('ABCD')) df =df.append(df) df的样子如下 在数据处理和分析中,经常需要对数据进筛选以便找到我们需要的信息。这里的[df[‘职业’].str.contains(‘工程’)]可以理解为选所有职业包含字符串‘工程’的数据。通过以上代码,我们成功筛选了所有职业中包含“工程”的数据。此方法同样适用于筛选其他数据类型和特定的字符集。下面我们来看如何使用contains()函数,筛选DataFrame指定数据列包含特定内容的所有数据筛选特定内容:Python筛选DataFrame指定数据列包含特定内容的所有数据。 在数据分析过程中,我们经常需要从DataFrame中获取特定列的值,来进后续的操作。本文将介绍如何使用pandas库来筛选DataFrame指定列的值。接下来,我们可以使用.iloc方法来获取DataFrame中第N第M列的值。当然,我们还可以使用.loc方法来根据和列的名称来获取DataFrame特定值。通过上述方法,我们可以方便地从DataFrame中获取所需数据,进后续操作。获取DataFrame特定列的值:pandas实战教程。 Pandas 是一个基于 Python 的开源数据分析库,可以帮助你根据某一列的数据进筛选。你可以使用它的 filter() 方法来实现筛选功能,例如:df.filter(items=['Name', 'Age'])。 在pandas中怎么样实现类似mysql查找语句的功能:select*fromtablewherecolumn_name=some_value;pandas中获取数据的有以下几种方法:布尔索引位置索引标签索引使用API假设数据如下:importpandasaspdimportnumpyasnpdf=pd.DataFrame({'A':'foobarfoobar... 本文主要介绍Python中,通过DataFrame中列(column)来查找(row)数据的方法,以及相关操作的示例代码。 原文地址:Python DataFrame 根据列(column)值选择查找(row)的方法及示例代码