我希望能够找到熊猫数据框的最大值和最小值以及相应的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值。
答案 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]