如何从熊猫数据框中找到最小和最大AND对应的x值?

时间:2019-06-04 20:36:55

标签: python dataframe

我希望能够找到熊猫数据框的最大值和最小值以及相应的X值。到目前为止,我只是找到了Y值的最大值和最小值,但是我不知道如何提供相应的X值。我该怎么做才能获得相应的值?

因此,对min和max的发现包含在编写excel文件的循环中,我最终希望在excel文件中也将它们的max或min值写出来。我已经尝试过执行此功能以提供相应的值

maxVal = dfspectra.loc [dfspectra ['Current(mA)']。idxmax()] minVal = dfspectra.loc [dfspectra ['Current(mA)']。idxmin()]

这不起作用,只能给我NaN或说数据帧无法调用

这是数据帧的最初介绍:

for filename in filestoprocess:
    baseName=os.path.basename(os.path.basename(filename))
    dfspectra=pd.read_csv(filename, skiprows = 1, delimiter =        "\s+|\t+|\0+", header = None, names = ['Potential (V)','Current (mA)'],     engine='python', skipfooter=1,skipinitialspace=True)
    fig, ax = plt.subplots()
    ax.plot(dfspectra['Potential (V)'],dfspectra['Current (mA)'],     "ok")
    ax.set(xlabel='Potential (V)', ylabel='Current (mA)', title='CV Data')

这是我尝试找到最大值/最小值和相应的x值的方法:

 ymax = np.max(dfspectra['Current (mA)'])
 ymin = np.min(dfspectra['Current (mA)'])
 maxVal = dfspectra.loc[dfspectra['Current (mA)'].idxmax()]
 minVal = dfspectra.loc[dfspectra['Current (mA)'].idxmin()]

当我将min或maxVal放入控制台时,它会提供完整的数据帧,而当我尝试maxVal(dfspectra ['Current(mA)']时,它表示该数据帧不可调用。我认为是numpy函数找到Y值,而loc函数给出X值。

1 个答案:

答案 0 :(得分:1)

尝试一下-

indx_max = np.argmax(dfspectra['Current (mA)'])
x_max = dfspectra.iloc[indx_max]

第一条语句在您的Current (mA)的列dfspectra中查找包含最大值的索引。第二条语句返回与第一行的索引相对应的行。对于最小值,请使用np.argmin

indx_min = np.argmin(dfspectra['Current (mA)'])
x_min = dfspectra.iloc[indx_min]