我是新來的使用Python熊貓,並有以下腳本從Excel文件中拉時間系列數據,設置日期=指數,然後將要執行各種計算數據按日期參考。腳本:Python中的日期範圍索引熊貓
df = pd.read_excel("myfile.xls")
df = df.set_index(df.Date)
df = df.drop("Date",1)
df.index.name = None
df.head()
,它的輸出(給你的數據的意義上)是:
Px1 Px2 Px3 Px4 Px5 Px6 Px7
2015-08-12 19.850000 10.25 7.88 10.90 109.349998 106.650002 208.830002
2015-08-11 19.549999 10.16 7.81 10.88 109.419998 106.690002 208.660004
2015-08-10 19.260000 10.07 7.73 10.79 109.059998 105.989998 210.630005
2015-08-07 19.240000 10.08 7.69 10.92 109.199997 106.430000 207.919998
2015-08-06 19.250000 10.09 7.76 10.96 109.010002 106.010002 208.350006
當我嘗試檢索數據基於像df.loc['20150806']
一個日期的作品,但是當我嘗試檢索像df.loc['20150806':'20150812']
這樣的切片我返回Empty DataFrame
。
同樣,索引是D型細胞= 'datetime64 [NS]',長度= 1412,DateTimeIndex FREQ =無,TZ =無
就像我說,我的最終目標是要能夠組數據按日,月,年,不同時期等進行計算,並對數據進行計算。我想給這方面,但甚至不想去那個在這裏,因爲我清楚地停留在一些更基本的 - 也許是誤解如何與DateTimeIndex
謝謝操作。
編輯:意思是還包括,我認爲與索引引用的主要問題與freq = 0,BC當我嘗試更簡單的例子與連續日期系列,我沒有這個問題。
您的索引沒有排序,或者至少是遞減而非遞增。這就是爲什麼切片返回一個空的數據幀(8月12日是在8月6日之前) – joris
嘗試'df = df.sort_index()',然後嘗試再次切片。 – joris
根據@joris的建議進行擴展,也可以通過以下兩種方式之一來反轉順序:'df.loc ['2015-08-12':'2015-08-10']'或'df.loc ['2015-08-10':'2015-08-12': - 1]'但是沒有明確的排序(當然是一個好建議),並不一定意味着片的結果將被排序。你實際上在做一個'iloc'風格的切片。 – JohnE