gpt4 book ai didi

python - 如何找到数据框中列的最小值的第一行

转载 作者:行者123 更新时间:2023-12-01 00:12:31 25 4
gpt4 key购买 nike

我有一个数据框,我试图通过减去两列的绝对差来获得最小值行,以形成第三列,我试图在其中获取 col 数据框的第一个或第二个最小值[3] 我收到一个错误。有没有更好的方法从列[3]中获取最小值的行。

df2 = df[[2,3]]
df2[4] = np.absolute(df[2] - df[3])
#lowest = df.iloc[df[6].min()]
2 3 4
0 -111 -104 7
1 -130 110 240
2 -105 -112 7
3 -118 -100 18
4 -147 123 270
5 225 -278 503
6 102 -122 224

2 3 4

期望结果 = 2 -105 -112 7

最佳答案

获取与系列的差异,添加Series.abs然后按 boolean indexing 中的最小值进行比较:

s = (df[2] - df[3]).abs()
df = df[s == s.min()]

如果想要新的差异列:

df['diff'] = (df[2] - df[3]).abs()
df = df[df['diff'] == df['diff'].min()]

另一个想法是通过 Series.idxmin 的最小值获取索引然后选择DataFrame.loc ,对于一行 DataFrame 是必需的 [[]]:

s = (df[2] - df[3]).abs()
df = df.loc[[s.idxmin()]]

编辑:

对于更动态的代码,如果可能的话,可以使用转换为整数:

def int_if_possible(x):
try:
return x.astype(int)
except Exception:
return x

df = df.apply(int_if_possible)

关于python - 如何找到数据框中列的最小值的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59526484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com