首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Pandas中按增量时间移动行

在Pandas中按增量时间移动行
EN

Stack Overflow用户
提问于 2018-12-15 18:39:47
回答 1查看 196关注 0票数 0

我有一个这样的数据帧:

代码语言:javascript
复制
                             Ask      Bid  AskVolume  BidVolume
Gmt time
2018-10-10 10:30:00.573  1.14908  1.14906       1.57       1.00
2018-10-10 10:30:01.044  1.14906  1.14904       1.00       6.67
2018-10-10 10:30:01.620  1.14905  1.14903       1.00       2.06
2018-10-10 10:30:01.934  1.14906  1.14902       1.95       4.69
2018-10-10 10:30:02.093  1.14904  1.14902       1.00       1.50
2018-10-10 10:30:02.422  1.14902  1.14901       1.20       1.25
2018-10-10 10:30:02.967  1.14902  1.14900       3.00       1.50
2018-10-10 10:30:03.485  1.14902  1.14899       1.50       6.75
2018-10-10 10:30:04.016  1.14902  1.14900       1.00       1.25
2018-10-10 10:30:04.584  1.14902  1.14899       1.10       3.94
2018-10-10 10:30:05.316  1.14902  1.14900       1.57       1.00
2018-10-10 10:30:06.457  1.14902  1.14899       1.10       3.00
2018-10-10 10:30:06.972  1.14901  1.14899       1.00       2.25
2018-10-10 10:30:07.606  1.14901  1.14898       2.70       3.00
2018-10-10 10:30:10.751  1.14901  1.14899       1.20       1.87

我想将Ask列移位1秒增量。我试过了,但返回了NaN。

代码语言:javascript
复制
df = pd.read_csv('2hour.csv')
delta = pd.Timedelta(1,unit='s')
df['Gmt time'] = pd.DatetimeIndex(df['Gmt time'])
df.set_index(keys='Gmt time',inplace=True)
df['Shifted_Ask'] = df['Ask'].shift(freq=delta)
print df.head()

期望值:

代码语言:javascript
复制
Gmt time                 Ask      Bid           AskVolume  BidVolume   Shifted_Ask 
2018-10-10 10:30:00.573  1.14908  1.14906       1.57       1.00         1.14906          
2018-10-10 10:30:01.044  1.14906  1.14904       1.00       6.67         1.14902  
2018-10-10 10:30:01.620  1.14905  1.14903       1.00       2.06         1.14902 
2018-10-10 10:30:01.934  1.14906  1.14902       1.95       4.69         1.14902
2018-10-10 10:30:02.093  1.14904  1.14902       1.00       1.50         1.14902
EN

回答 1

Stack Overflow用户

发布于 2021-02-03 17:54:24

感谢@RishitSanmukhani两年前的这个非常有用的答案:

代码语言:javascript
复制
df['Shifted_Ask'] = df.Ask.reindex(dd.index + pd.Timedelta(seconds=1), method='ffill').values

reindex的参考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reindex.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53791565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档