首页 > 解决方案 > 如何在python中找到对应列的值

问题描述

我正在做一个模拟财务报告。要求之一是找出从1个月到另一个月以及发生这种情况的月份的最大利润增长和下降。我很容易找到利润的最小和最大变化,但不知道如何找到发生变化的月份。

这是数据帧的标题

    Date    Profit/Losses
0   Jan-2010    867884
1   Feb-2010    984655
2   Mar-2010    322013
3   Apr-2010    -69417
4   May-2010    310503

和我当前的代码

diff = [df["Profit/Losses"][i]-df["Profit/Losses"][i-1] for i in range(1,len(df["Profit/Losses"]))]

max_change = max(diff)
min_change = min(diff)
tot_change = sum(diff)

返回最大值和最小值的相应日期值的最佳方法是什么?例如:我希望返回 2012 年 2 月是利润增长最大的月份。

标签: pythonpandasdataframe

解决方案


import numpy as np

df = pd.DataFrame({'Profit/Losses': np.random.rand(100)*10000})

df['diff'] = df['Profit/Losses'].shift(1) - df['Profit/Losses']

df.iloc[np.argmax(df['diff'])]
df.iloc[np.argmin(df['diff'])]

推荐阅读