运行以下代码时:
for row,hit in hits.iterrows():
forwardRows = data[data.index.values > row];
我收到此错误:
TypeError: Cannot compare type 'Timestamp' with type 'int'
如果我查看这里比较的内容,我有以下变量:
type(row)
pandas.tslib.Timestamp
row
Timestamp('2015-09-01 09:30:00')
正在与进行比较:
type(data.index.values[0])
numpy.datetime64
data.index.values[0]
numpy.datetime64('2015-09-01T10:30:00.000000000+0100')
我想了解这是否可以轻松解决,还是应该上传我的数据子集?感谢
答案 0 :(得分:4)
虽然这不是您问题的直接答案,但我觉得这是您正在寻找的内容:pandas.DataFrame.truncate
您可以按如下方式使用它:
for row, hit in hits.iterrows():
forwardRows = data.truncate(before=row)
以下是一个关于如何使用它的小玩具示例:
import pandas as pd
# let's create some data to play with
df = pd.DataFrame(
index=pd.date_range(start='2016-01-01', end='2016-06-01', freq='M'),
columns=['x'],
data=np.random.random(5)
)
# example: truncate rows before Mar 1
df.truncate(before='2016-03-01')
# example: truncate rows after Mar 1
df.truncate(after='2016-03-01')
答案 1 :(得分:2)
使用values
时,您将其置于numpy
世界。相反,尝试
for row,hit in hits.iterrows():
forwardRows = data[data.index > row];