假設我有一個數據幀,其中行由交易收錄天,所以像:選擇行開始具有一定的指標值
Date ClosingPrice
2017-3-16 10.00
2017-3-17 10.13
2017-3-20 10.19
...
我想找到$ N $ (比如說)2017-2-28開始的行,所以我不知道日期範圍,我只知道我想做十行下的東西。做這件事最優雅的方式是什麼? (有很多難看的方法......)
假設我有一個數據幀,其中行由交易收錄天,所以像:選擇行開始具有一定的指標值
Date ClosingPrice
2017-3-16 10.00
2017-3-17 10.13
2017-3-20 10.19
...
我想找到$ N $ (比如說)2017-2-28開始的行,所以我不知道日期範圍,我只知道我想做十行下的東西。做這件事最優雅的方式是什麼? (有很多難看的方法......)
我快速解答
s = df.Date.searchsorted(pd.to_datetime('2017-2-28'))[0]
df.iloc[s:s + 10]
演示
df = pd.DataFrame(dict(
Date=pd.date_range('2017-01-31', periods=90, freq='B'),
ClosingPrice=np.random.rand(90)
)).iloc[:, ::-1]
date = pd.to_datetime('2017-3-11')
s = df.Date.searchsorted(date)[0]
df.iloc[s:s + 10]
Date ClosingPrice
29 2017-03-13 0.737527
30 2017-03-14 0.411525
31 2017-03-15 0.794309
32 2017-03-16 0.578911
33 2017-03-17 0.747763
34 2017-03-20 0.081113
35 2017-03-21 0.000058
36 2017-03-22 0.274022
37 2017-03-23 0.367831
38 2017-03-24 0.100930
天真的時間測試
df[df['Date'] >= Date(2017,02,28)][:10]
我猜?
'df [df ['Date']> = Date(date.split(「,」)] [:10]。 #日期是一些變量# – putonspectacles
這是一個很好的解決方案! –
這看起來是正確的,但對於我們之間的穴居人來說:第一行'iloc'裏面的口頭禪是什麼? –
我不喜歡數據框架構造首先把ClosingPrice。所以我強制顛倒了列的順序 – piRSquared
熊貓成語需要一點時間習慣......謝謝! –