我試圖找到一種方式在熊貓數據框中獲得第二天(本例中的下一行)。我認爲這很容易找到,但Im掙扎。熊貓數據框中的第二天或下一行索引
開始數據:
ts = pd.DataFrame(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts.columns = ['Val']
ts['Week'] = ts.index.week
ts
Val Week
2000-01-01 -0.639345 52
2000-01-02 1.294537 52
2000-01-03 1.181486 1
2000-01-04 -0.011694 1
2000-01-05 -0.224887 1
2000-01-06 -0.493120 1
2000-01-07 1.439436 1
2000-01-08 1.017722 1
2000-01-09 1.125153 1
2000-01-10 0.209741 2
的數據子集:
tsSig = ts[ts.Val>1.5].drop_duplicates(subset='Week')
tsSig.head()
Val Week
2000-01-24 2.215559 4
2000-02-09 1.561941 6
2000-02-24 1.645916 8
2000-03-16 1.745079 11
2000-04-10 1.570023 15
我現在想用指數從我tsSig
子找到第二天ts
然後創建一個新的列ts['Val_Dayplus1']
,顯示第25個(-0.309811
),第10個(-1.644814
)等
我想要的東西像ts.loc[tsSig.index].shift(1)
得到第二天但這顯然是不正確的....
所需的輸出:
Val Val_Dayplus1 Week
2000-01-24 2.215559 -0.309811 4
2000-02-09 1.561941 -1.644814 6
2000-02-24 1.645916 -0.187440 8
(在tsSig所有行。指數)
編輯:
此出現以便在日期索引tsSig.index
上提供我所需的信息。我想聽聽其他任何方式來做到這一點。
ts.loc[tsSig.index + pd.DateOffset(days=1)]
tsSig['Val_Dayplus1'] = ts['Val'].ix[tsSig.index + pd.DateOffset(days=1)].values
我已經加入數據,所以請告訴我你是什麼意思。我已經給出了期望的輸出。 – ade1e