我有一个日内数据的 Dataframe ,我想得到前一天收盘的第二天的日内条形数据。我的 Dataframe 是使用日期时间索引。
我似乎没有一个很好的方法来做到这一点。我试图重新采样的日期,并获得每日收盘和他们合并到另一个日期框架,但这不会工作,因为索引和大小是不同的。有没有一种方法可以做到这一点,通过Pandas使用矢量方法?THNX
Open High Low Close Vol Daily_Low is_daily_low PrevDayClose
datetime
2012-09-18 09:30:00 1324.25 1325.00 1321.75 1324.50 143720 1321.75 1 NaN
2012-09-18 10:00:00 1324.50 1325.50 1323.00 1324.25 96809 1321.75 0 NaN
2012-09-18 10:30:00 1324.25 1326.00 1323.50 1326.00 101617 1321.75 0 NaN
2012-09-18 11:00:00 1326.00 1327.50 1325.25 1327.00 100908 1321.75 0 NaN
2012-09-18 11:30:00 1326.75 1327.00 1324.25 1325.00 64223 1321.75 0 NaN
2012-09-18 12:00:00 1324.75 1325.25 1322.25 1322.50 60017 1321.75 0 NaN
2012-09-18 12:30:00 1322.50 1325.00 1322.25 1324.00 36732 1321.75 0 NaN
2012-09-18 13:00:00 1324.00 1325.00 1322.00 1323.75 50707 1321.75 0 NaN
2012-09-18 13:30:00 1323.75 1324.00 1322.50 1322.75 26744 1321.75 0 NaN
2012-09-18 14:00:00 1322.75 1324.25 1322.25 1323.75 33473 1321.75 0 NaN
2012-09-18 14:30:00 1323.50 1324.25 1322.50 1323.25 34082 1321.75 0 NaN
2012-09-18 15:00:00 1323.25 1325.00 1323.00 1324.25 34119 1321.75 0 NaN
2012-09-18 15:30:00 1324.25 1325.75 1323.25 1325.50 117758 1321.75 0 NaN
2012-09-19 09:30:00 1327.50 1327.50 1323.50 1324.50 147406 1323.50 1 NaN
2012-09-19 10:00:00 1324.50 1329.25 1324.50 1326.75 148099 1323.50 0 NaN
2012-09-19 10:30:00 1326.50 1327.25 1324.25 1326.25 106183 1323.50 0 NaN
2012-09-19 11:00:00 1326.25 1330.25 1325.75 1329.50 130089 1323.50 0 NaN
2012-09-19 11:30:00 1329.50 1330.25 1328.50 1329.25 61245 1323.50 0 NaN
2012-09-19 12:00:00 1329.25 1331.25 1328.25 1331.00 91314 1323.50 0 NaN
2012-09-19 12:30:00 1330.75 1331.25 1329.75 1330.25 32613 1323.50 0 NaN
2012-09-19 13:00:00 1330.50 1330.75 1328.75 1329.00 24016 1323.50 0 NaN
2012-09-19 13:30:00 1329.00 1330.00 1328.00 1329.00 29070 1323.50 0 NaN
2012-09-19 14:00:00 1328.75 1330.50 1328.75 1329.75 20754 1323.50 0 NaN
2012-09-19 14:30:00 1329.50 1330.75 1329.25 1330.75 25555 1323.50 0 NaN
2012-09-19 15:00:00 1330.50 1331.25 1329.50 1329.75 49683 1323.50 0 NaN
2012-09-19 15:30:00 1329.75 1330.00 1326.50 1326.50 138803 1323.50 0 NaN
2012-09-20 09:30:00 1320.00 1321.00 1315.75 1316.75 192555 1315.75 1 NaN
2012-09-20 10:00:00 1317.00 1321.00 1316.50 1320.25 163925 1315.75 0 NaN
2012-09-20 10:30:00 1320.00 1323.50 1319.75 1323.25 114184 1315.75 0 NaN
2012-09-20 11:00:00 1323.25 1324.50 1321.25 1322.25 126658 1315.75 0 NaN
我想以此为基础创建一个列,该列是前一天的收盘表单,从前一天开始向前填充。因此,在我的示例中,前一收盘列的数据应从2012年9月18日收盘的15:30向前填充,直到2012年9月19日的下一天。9月20日应该用前一天收盘填充第二天的列。
2条答案
按热度按时间vmdwslir1#
你应该展示你的数据框架的结构,以便于其他人做出更相关的回答。
无论如何,你可以使用panda groupby来按日期分组,然后使用last()来获取给定日期的“close”,接着使用shift(-1)来获取前几天的close。
编辑:既然你不会分享数据结构,我就假设一个:
编辑#2:获得上次关闭:
应用到新列:
vx6bjr1n2#
试试这个:df ['每日关闭']= df.关闭.分组(df.index.date).最后().shift().重新索引(df.index.date).值