我是靠谱客的博主 淡淡水池,最近开发中收集的这篇文章主要介绍python3小于5大于2的值_python-Pandas Dataframe-基于两列但大于0的行找到最小值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我有一个包含3列的数据框:x,y,时间.有几千行.

我想做的是检索具有最少时间的行,但我希望最小值不应该为0.

例如

x y time

240 1 28.5

240 2 19.3

240 240 0

240 19 9.7

到目前为止,我已经尝试过以下操作:

df.loc[df['time'] > 0].min()

# this gives me a series and I want a row

# x 225.000000

# y 0.000000

# time 1.066606

df['time'].drop_duplicates().nsmallest(1)

# 225 0.0

我也尝试过groupby

df.loc[df.groupby('id_x', sort=False)['time'].idxmin()]

我通常会遇到一系列问题,因此很难解决这个问题.

解决方法:

您可以通过query过滤掉0个值,并通过idxmin过滤出最小值的索引,最后通过loc选择:

s = df.loc[df.query('time != 0')['time'].idxmin()]

print (s)

x 240.0

y 19.0

time 9.7

Name: 3, dtype: float64

df = df.loc[[df.query('time != 0')['time'].idxmin()]]

print (df)

x y time

3 240 19 9.7

标签:python,pandas

来源: https://codeday.me/bug/20191011/1893807.html

最后

以上就是淡淡水池为你收集整理的python3小于5大于2的值_python-Pandas Dataframe-基于两列但大于0的行找到最小值的全部内容,希望文章能够帮你解决python3小于5大于2的值_python-Pandas Dataframe-基于两列但大于0的行找到最小值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部