您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

本教程是熊猫切片的很好的教程。确保您签出。在一些片段上…要对带有条件的数据帧进行切片,请使用以下格式:

>>> df[condition]

这将返回数据框的一部分,您可以使用对其建立索引iloc。这是您的示例:

>>> df[df.A > 3].iloc[0]

A 4 B 6 C 3 Name: 2, dtype: int64

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

获取第一行,其中A> 4 AND B> 3:

>>> df[(df.A > 4) & (df.B > 3)].iloc[0]

A 5 B 4 C 5 Name: 4, dtype: int64

获取第一行,其中A> 3 AND(B> 3 OR 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

现在,对于最后一种情况,我们可以编写一个函数来处理返回降序排列的帧的认情况:

>>> 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行。

python 2022/1/1 18:28:05 有189人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶