如何在pandas dataframe中将当前行减去前一行,并将其应用于每一行,而不使用循环?
如何在pandas dataframe中将当前行减去前一行,并将其应用于每一行,而不使用循环?
我正在使用Python3.5和pandas进行工作。我从雅虎财经加载了股票数据,并将文件保存为csv格式。我的数据框(DataFrame)从这个csv文件中加载数据。以下是csv文件的十行数据,也是我的数据框的副本:
日期 开盘价 最高价 最低价 收盘价 成交量 调整后收盘价 1990-04-12 26.875000 26.875000 26.625 26.625 6100 250.576036 1990-04-16 26.500000 26.750000 26.375 26.750 500 251.752449 1990-04-17 26.750000 26.875000 26.750 26.875 2300 252.928863 1990-04-18 26.875000 26.875000 26.500 26.625 3500 250.576036 1990-04-19 26.500000 26.750000 26.500 26.750 700 251.752449 1990-04-20 26.750000 26.875000 26.750 26.875 2100 252.928863 1990-04-23 26.875000 26.875000 26.750 26.875 700 252.928863 1990-04-24 27.000000 27.000000 26.000 26.000 2400 244.693970 1990-04-25 25.250000 25.250000 24.875 25.125 9300 236.459076 1990-04-26 25.000000 25.250000 24.750 25.000 1200 235.282663
我知道我可以使用iloc、loc、ix来索引值,但是这些值只会给出特定的行和列,并不会对每一行执行操作。
例如:数据中开盘价的第一行的值是26.875,它下面的行是26.50。价格下降了0.375美分。我想要计算从前一天到下一天的增长或减少的百分比。所以,以这个例子来结束,0.375除以26.875等于1.4%的下降。我想要能够对每一行运行这个计算,这样我就知道它与前一天相比增加或减少了多少。我尝试过索引函数,但它们是绝对的,并且我不想使用循环。是否有一种方法可以使用ix、iloc、loc或其他函数来实现这个目的?