首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据条件获取Python Pandas中的第一行数据帧

根据条件获取Python Pandas中的第一行数据帧
EN

Stack Overflow用户
提问于 2018-09-20 01:30:36
回答 2查看 0关注 0票数 0

假设我有一个像这样的数据帧

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame([[1, 2, 1], [1, 3, 2], [4, 6, 3], [4, 3, 4], [5, 4, 5]], columns=['A', 'B', 'C'])

>> df
   A  B  C
0  1  2  1
1  1  3  2
2  4  6  3
3  4  3  4
4  5  4  5

原始表格更复杂,列数和行数更多。

我想获得符合某些标准的第一行。例子:

  1. 获取A> 3的第一行(返回第2行)
  2. 获取第一行,其中A> 4 AND B> 3(返回第4行)
  3. 得到第一行,其中A> 3 AND(B> 3或C> 2)(返回第2行)

但是,如果没有任何行符合特定的标准,那么我想在我按A(或其他情况由B,C等)对其进行排序后得到第一行

  1. 获取A> 6的第一行(通过A desc排序返回第4行并获得第一行)

我能够通过迭代数据帧来做到这一点(我知道掷骰子:P)。所以,我更喜欢用更加pythonic的方式来解决它。

EN

回答 2

Stack Overflow用户

发布于 2018-09-20 10:19:27

对于pandas切片,本教程是一个非常好的教程。一定要检查一下。在某些片段上...要使用条件切片数据帧,请使用以下格式:

代码语言:javascript
复制
>>> df[condition]

这将返回您可以使用索引编制的数据帧的一部分iloc。以下是您的示例:

  1. 获取A> 3的第一行(返回第2行) >>> df[df.A > 3].iloc[0] A 4 B 6 C 3 Name: 2, dtype: int64

如果你真正想要的是行号,而不是使用iloc,那就是df[df.A > 3].index[0]

  1. 获取A> 4 AND B> 3的第一行: >>> df[(df.A > 4) & (df.B > 3)].iloc[0] A 5 B 4 C 5 Name: 4, dtype: int64
  2. 得到第一行,其中A> 3 AND(B> 3或C> 2)(返回第2行) >>> df[(df.A > 3) & ((df.B > 3) | (df.C > 2))].iloc[0] A 4 B 6 C 3 Name: 2, dtype: int64

现在,在您的上一个案例中,我们可以编写一个函数来处理返回降序排序帧的默认情况:

代码语言:javascript
复制
>>> def series_or_default(X, condition, default_col, ascending=False):
...     sliced = X[condition]
...     if sliced.shape[0] == 0:
...         return X.sort_values(default_col, ascending=ascending).iloc[0]
...     return sliced.iloc[0]
>>> 
>>> series_or_default(df, df.A > 6, 'A')
A    5
B    4
C    5
Name: 4, dtype: int64

正如预期的那样,它返回第4行。

票数 0
EN

Stack Overflow用户

发布于 2018-09-20 10:31:25

对于现有匹配,请使用query:

代码语言:txt
复制
df.query(' A > 3' ).head(1)
Out[33]: 
   A  B  C
2  4  6  3

df.query(' A > 4 and B > 3' ).head(1)
Out[34]: 
   A  B  C
4  5  4  5

df.query(' A > 3 and (B > 3 or C > 2)' ).head(1)
Out[35]: 
   A  B  C
2  4  6  3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档