python - 如何在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 月是利润增长最大的月份。
解决方案
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'])]
推荐阅读
- python - 为 pycare (setup.py) 构建轮子 ...错误
- django - 当我删除图像时,django imageField 返回 False
- reactjs - 为反应创建一个迭代表
- angular-material - 如果该步骤未在垫子步进器中完成,如何禁用步进器单击/导航到步骤
- python - 导入函数的问题
- r - 计算R中数据帧中值<1的负逆
- python - 拉萨要求新实体,但保持以前的意图
- python - 使用 Python、Shapely 和 Fiona 编辑多边形坐标
- multithreading - 如何从 kotlin coroutines Deferred<> (服务器)中找到第一个想要的结果
- javascript - JS/Redux 三元操作讲解