Python 使用数据帧按索引进行移位
有没有办法做到这一点:Python 使用数据帧按索引进行移位,python,pandas,indexing,shift,Python,Pandas,Indexing,Shift,有没有办法做到这一点: predicted_sells = [] for row in df.values: index_tms = row[0] delta = index_tms + timedelta(hours=1) try: sells_to_predict = df.loc[delta]['cars_sold'] except KeyError: new_element = None predicted_sell
predicted_sells = []
for row in df.values:
index_tms = row[0]
delta = index_tms + timedelta(hours=1)
try:
sells_to_predict = df.loc[delta]['cars_sold']
except KeyError:
new_element = None
predicted_sells.append(sells_to_predict)
df['sell_to_predict'] = predicted_sells
示例说明:
sell是我在tms时售出的汽车数量。sell_to_predict是我一小时后卖出的汽车数量。我想预测一下。因此,我想建立一个新的列,包含tms时我将在tms+1h时出售的汽车数量
在我编写代码之前,它看起来是这样的
tms sell
2015-11-23 15:00:00 6
2015-11-23 16:00:00 2
2015-11-23 17:00:00 10
tms sell sell_to_predict
2015-11-23 15:00:00 6 2
2015-11-23 16:00:00 2 10
2015-11-23 17:00:00 10 NaN
在它看起来像那样之后
tms sell
2015-11-23 15:00:00 6
2015-11-23 16:00:00 2
2015-11-23 17:00:00 10
tms sell sell_to_predict
2015-11-23 15:00:00 6 2
2015-11-23 16:00:00 2 10
2015-11-23 17:00:00 10 NaN
我根据另一列的移位创建了一个新列,但这不是列数的移位。这是基于索引的移位(这里的索引是时间戳)
下面是另一个稍微复杂一点的例子:
之前:
sell random
store hour
1 1 1 9
2 7 7
2 1 4 3
2 2 3
之后:
sell random predict
store hour
1 1 1 9 7
2 7 7 NaN
2 1 4 3 2
2 2 3 NaN
你试过换档吗 e、 g
答案是重新采样,这样我就不会有任何漏洞,然后应用这个问题的答案:你能提供一个你想修改的数据帧的小例子,以及你希望得到的例子吗?从您提供的示例中,不清楚
index\u tms
和['old\u column]
实际代表什么。例如,为什么下面的方法不起作用df['new_column']=df.index+timedelta(hours=1)
想象一下,我想预测一小时内我将售出的汽车数量。我在“old_栏”中列出了我使用该指数时售出的汽车数量。然后我想精确计算一小时后售出的汽车数量,因此我想创建一个包含一小时后售出汽车数量的“新_列”。为了说明这一点,我将编辑我的问题。这不是我想要的,因为它不是基于索引比较的。之前的行并不总是在一小时前有索引的行。此外,我没有说在我的问题tho中,我还有一个索引(这里说的是汽车店的id),所以前一行可以引用发生在其他商店的销售。