我的数据是盘中股票价格数据,多天.这是一个简化版本:
Last
2015-01-02 08:30:00 2035.00
2015-01-02 10:30:00 2038.25
2015-01-02 15:15:00 2025.25
2015-01-05 08:30:00 2020.25
2015-01-05 10:30:00 2010.75
2015-01-05 15:15:00 2015.00
2015-01-06 08:30:00 1988.00
2015-01-06 10:30:00 1990.25
2015-01-06 15:15:00 1970.00
鉴于在数据中,每天,最后一行是在15:15:00,我怎样才能获得每天每行的差异(15:15:00行 – 最后一行).这是所需的输出.
Last Dif
2015-01-02 08:30:00 2035.25 -10
2015-01-02 10:30:00 2038.25 -13
2015-01-02 15:15:00 2025.25 0
2015-01-05 08:30:00 2020.25 -5.25
2015-01-05 10:30:00 2010.00 5
2015-01-05 15:15:00 2015.00 0
2015-01-06 08:30:00 1988.00 -18
2015-01-06 10:30:00 1990.25 -20.25
2015-01-06 15:15:00 1970.00 0
解决方法:
您可以使用groupby
到DatetimeIndex.day
和apply
之间的最后一个值与iloc
之间的差异和实际行值:
print df
Last
2015-01-02 08:30:00 2035.25
2015-01-02 10:30:00 2038.25
2015-01-02 15:15:00 2025.25
2015-01-05 08:30:00 2020.25
2015-01-05 10:30:00 2010.00
2015-01-05 15:15:00 2015.00
2015-01-06 08:30:00 1988.00
2015-01-06 10:30:00 1990.25
2015-01-06 15:15:00 1970.00
df['Dif'] = df.groupby(df.index.day)['Last'].apply(lambda x: x.iloc[-1] - x)
print df
Last Dif
2015-01-02 08:30:00 2035.25 -10.00
2015-01-02 10:30:00 2038.25 -13.00
2015-01-02 15:15:00 2025.25 0.00
2015-01-05 08:30:00 2020.25 -5.25
2015-01-05 10:30:00 2010.00 5.00
2015-01-05 15:15:00 2015.00 0.00
2015-01-06 08:30:00 1988.00 -18.00
2015-01-06 10:30:00 1990.25 -20.25
2015-01-06 15:15:00 1970.00 0.00
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。