当前位置: 首页 > 面试题库 >

计算Python / Pandas中两行之间的差异

阮梓
2023-03-14
问题内容

在python中,如何引用上一行并针对它计算一些内容?具体来说,我有工作dataframespandas-我有一个数据帧全的股票价格信息,看起来像这样:

           Date   Close  Adj Close
251  2011-01-03  147.48     143.25
250  2011-01-04  147.64     143.41
249  2011-01-05  147.05     142.83
248  2011-01-06  148.66     144.40
247  2011-01-07  147.93     143.69

这是我创建此数据框的方法:

import pandas

url = 'http://ichart.finance.yahoo.com/table.csv?s=IBM&a=00&b=1&c=2011&d=11&e=31&f=2011&g=d&ignore=.csv'
data = data = pandas.read_csv(url)

## now I sorted the data frame ascending by date 
data = data.sort(columns='Date')

从第2行开始,或者在这种情况下,我想是250(PS-
是索引吗?),我想为此数据帧中的每个条目计算2011-01-03和2011-01-04之间的差。我相信适当的方法是编写一个函数,该函数采用当前行,然后找出前一行,并计算它们之间的差,然后使用该pandas
apply函数用值更新数据帧。

那是正确的方法吗?如果是这样,我是否应该使用索引来确定差异?(注意-
我仍处于python初学者模式,因此index可能不是正确的术语,甚至不是实现此目标的正确方法)


问题答案:

我认为您想做这样的事情:

In [26]: data
Out[26]: 
           Date   Close  Adj Close
251  2011-01-03  147.48     143.25
250  2011-01-04  147.64     143.41
249  2011-01-05  147.05     142.83
248  2011-01-06  148.66     144.40
247  2011-01-07  147.93     143.69

In [27]: data.set_index('Date').diff()
Out[27]: 
            Close  Adj Close
Date                        
2011-01-03    NaN        NaN
2011-01-04   0.16       0.16
2011-01-05  -0.59      -0.58
2011-01-06   1.61       1.57
2011-01-07  -0.73      -0.71


 类似资料:
  • 问题内容: 我有一个熊猫数据框如下 上面的数据帧有83000行。我想获取两个连续行之间的时间差,并将其保存在单独的列中。理想的结果是 我已经尝试过但出现错误,如下所示 如何解决这个问题 问题答案: 问题是功能需要s或s ,因此首先要转换为,然后得到并除以: 如果需要或每分钟:

  • 问题内容: 我有一个带有StartDate列的表,我想计算两个连续记录之间的时间差。 谢谢。 @ Mark Byers和@ Yahia,我将请求表作为requestId,startdate 我想知道requestid 1和2、2和3、3和4等之间的时差是多少。我知道我需要在表上进行自我连接,但是我在子句上没有得到正确的支持。 问题答案: 要实现您的要求,请尝试以下操作(从OP编辑后进行更新): 如

  • 问题内容: 我有两个字符串变量,例如StartTime和EndTime。我需要通过用StartTime减去EndTime来计算TotalTime。 StartTime和EndTime的格式如下: TotalTime(小时和分钟格式)。如何在Android中计算? 问题答案: 尝试下面的代码。 //假设时间格式为 (“ hh:mm a”) 格式 输出 -小时数:: 8

  • 我有一些本地json文件。例如: JSON 1 JSON 1修改 我必须比较这些Json文件(在这个示例中,姓名字段、姓氏字段、年龄字段和文本字段被修改),我必须计算它们之间的差异百分比(绘制饼图或任何其他图形)。有办法做到这一点吗?

  • 我正在尝试编写一个方法来打印两个ZonedDateTimes之间的时间差,关于时区之间的差异。 我找到了一些解决方案,但它们都是为使用LocalDateTime而编写的。

  • 问题内容: 我有一个数据帧,有三列:,和; 计数是浮点数,日期是2015年的连续几天。 我试图找出和列中每一天的计数之间的差异,这意味着,我试图计算这两列的每一行与上一行之间的差异。我已经将日期设置为索引,但是却很难弄清楚该如何做。关于使用有一些提示,但是我没有运气找到合适的答案或说明。 我有点受阻,不胜感激这里的一些指导。 这是我的数据框的样子: 问题答案: 应该给出期望的结果: