如何在pandas中选择和存储大于数字的列?

vtwuwzda  于 2023-04-10  发布在  其他
关注(0)|答案(3)|浏览(126)

我有一个pandas DataFrame,其中包含一列整数。我希望行包含大于10的数字。我可以计算True或False,但不能计算实际值,方法是:

df['ints'] = df['ints'] > 10

我不经常使用Python,所以我在这里兜圈子。
我花了20分钟在Google上搜索,但没有找到我需要的东西。

编辑:

observationID   recordKey   gridReference   siteKey siteName    featureKey  startDate   endDate pTaxonVersionKey    taxonName   authority   commonName  ints
0   463166539   1767    SM90    NaN NaN 150161  12/02/2006  12/02/2006  NBNSYS0100004720    Pipistrellus pygmaeus   (Leach, 1825)   Soprano Pipistrelle 2006
1   463166623   4325    TL65    NaN NaN 168651  21/12/2008  21/12/2008  NHMSYS0020001355    Pipistrellus pipistrellus sensu stricto (Schreber, 1774)    Common Pipistrelle  2008
2   463166624   4326    TL65    NaN NaN 168651  18/01/2009  18/01/2009  NHMSYS0020001355    Pipistrellus pipistrellus sensu stricto (Schreber, 1774)    Common Pipistrelle  2009
3   463166625   4327    TL65    NaN NaN 168651  15/02/2009  15/02/2009  NHMSYS0020001355    Pipistrellus pipistrellus sensu stricto (Schreber, 1774)    Common Pipistrelle  2009
4   463166626   4328    TL65    NaN NaN 168651  19/12/2009  19/12/2009  NHMSYS0020001355    Pipistrellus pipistrellus sensu stricto (Schreber, 1774)    Common Pipistrelle  2009
2ledvvac

2ledvvac1#

样品DF:

In [79]: df = pd.DataFrame(np.random.randint(5, 15, (10, 3)), columns=list('abc'))

In [80]: df
Out[80]:
    a   b   c
0   6  11  11
1  14   7   8
2  13   5  11
3  13   7  11
4  13   5   9
5   5  11   9
6   9   8   6
7   5  11  10
8   8  10  14
9   7  14  13

仅显示b > 10

In [81]: df[df.b > 10]
Out[81]:
   a   b   c
0  6  11  11
5  5  11   9
7  5  11  10
9  7  14  13

满足b > 10条件的行的最小值(对于所有列)

In [82]: df[df.b > 10].min()
Out[82]:
a     5
b    11
c     9
dtype: int32

满足b > 10条件的行的最小值(对于b列)

In [84]: df.loc[df.b > 10, 'b'].min()
Out[84]: 11

**更新:**从Pandas 0.20.1开始,.ix索引器被弃用,取而代之的是更严格的.iloc和.loc索引器。

9q78igpj

9q78igpj2#

也可以使用query

In [2]: df = pd.DataFrame({'ints': range(9, 14), 'alpha': list('ABCDE')})

In [3]: df
Out[3]: 
   ints alpha
0     9     A
1    10     B
2    11     C
3    12     D
4    13     E

In [4]: df.query('ints > 10')
Out[4]: 
   ints alpha
2    11     C
3    12     D
4    13     E
mtb9vblg

mtb9vblg3#

我想知道为什么没有人提到pandas dataframe的内置函数类似于isin方法。

df = pd.DataFrame({'cost': [250, 150, 100], 'revenue': [100, 250, 300]},index=['A', 'B', 'C'])

   cost  revenue
A   250      100
B   150      250
C   100      300

按元素比较大于不等式或相等的DataFrames。

df=df[df["cost"].ge(150)]

   cost  revenue
    A   250      100
    B   150      250

相关问题