我对 python 很陌生,对 Pandas 也很陌生。我查阅了 Pandas 文档并尝试了多种方法来解决这个问题,但没有成功。
我有一个 DateFrame,其中一列包含时间戳,另一列包含价格,例如:
d = {'TimeStamp': [1603822620000, 1603822680000,1603822740000, 1603823040000,1603823100000,1603823160000,1603823220000], 'Price': [101,105,102,108,105,101,106], 'OtherData1': [1,2,3,4,5,6,7], 'OtherData2': [7,6,5,4,3,2,1]}
df= pd.DataFrame(d)
df
TimeStamp Price OtherData1 OtherData2
0 1603822620000 101 1 7
1 1603822680000 105 2 6
2 1603822740000 102 3 5
3 1603823040000 108 4 4
4 1603823100000 105 5 3
5 1603823160000 101 6 2
6 1603823220000 106 7 1
除了感兴趣的两列之外,此 DataFrame 还具有其他列,其中的数据与问题不是特别相关(用 OtherData Cols 表示)。
我想创建一个新专栏“Fut2Min”(未来两分钟的价格)。可能会有数据缺失,所以这个问题不能通过简单地获取下面2行的数据来解决。
我正在尝试找到一种方法,使每行中的 Fut2Min Col 的值 == 时间戳所在行的价格 + 120000(未来 2 分钟)或 null(或 NAN 或 w/e)(如果相应)时间戳不存在。
对于示例数据,DF 应更新为:(用于模拟所需结果的代码)
d = {'TimeStamp': [1603822620000, 1603822680000, 1603822740000, 1603822800000, 1603823040000,1603823100000,1603823160000,1603823220000],
'Price': [101,105,102,108,105,101,106,111],
'OtherData1': [1,2,3,4,5,6,7,8],
'OtherData2': [8,7,6,5,4,3,2,1],
'Fut2Min':[102,108,'NaN','NaN',106,111,'NaN','NaN']}
df= pd.DataFrame(d)
df
TimeStamp Price OtherData1 OtherData2 Fut2Min
0 1603822620000 101 1 8 102
1 1603822680000 105 2 7 108
2 1603822740000 102 3 6 NaN
3 1603822800000 108 4 5 NaN
4 1603823040000 105 5 4 106
5 1603823100000 101 6 3 111
6 1603823160000 106 7 2 NaN
7 1603823220000 111 8 1 NaN
烙印99
相关分类