2015-01-17 21 views
0

我有一個數據幀熊貓DF等:創建timestemps對於給定的數據

TYP1 TYP2 TYP3

.. (所以一年中有8760行8760小時)。 這意味着,第一行是2012-01-01 00:00:00的值,第二行顯示2012-01-01 00:01:00的值,依此類推。

我有兩點:

FIRST:

現在,我想從第一月創建Timestemps特定年份的12月31日,並把它除了值。 我怎麼能這樣做?我嘗試使用pd.date_range(),但是我只有日期,而不是時間。

第二:

Finaly,從timestemps,我需要的特定時間在討論今年的工作日,或Timestemp從步驟首位。 但我不知道,我怎樣才能「導入」信息,星期幾x,y等是什麼?!

最後,我的數據幀應該像(這裏爲2012年):

平日TYP1 TYP2 TYP3

週日10 50 60

週日20 100 80

週日75 80 20

...等等直到2012年12月31日「星期一」爲8760小時。 (於2013年,它將與thuesday開始)

回答

1

我相信你想要的是

pd.date_range('2012-01-01','2012-12-31', freq='T') 

對於頻率的不同的選擇,在這裏看到http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases

要附加給你的數據幀:

df['Timestamp'] = pd.date_range('2012-01-01','2012-12-31', freq='T') 

,如果你想使用它作爲指數

df.set_index('Timestamp', inplace=True) 

關於你提到的第二個問題。您可以從時間戳中檢索工作日。

x = pd.date_range('2012-01-01','2012-12-31', freq='T') 
x.weekday 

然後會給你一個值爲0,1,...,6代表各個工作日的數組。

+0

是的,太好了。而已。但我不明白你的觀點'x.weekday' – EP1986

+0

現在我有:df ['Timestamp'] = pd.date_range('2012-01-01','2012-12-31',freq ='T')而不是:df ['Timestamp']。weekday但是我得到了:AttributeError:'系列'對象沒有屬性'weekday'我怎樣才能得到一個新的列中相應的工作日? – EP1986

+0

有兩個選項。 (1)將Timestamp列設置爲索引,然後執行'df ['Weekdays'] = df.index.weekday';或者(2)在將時間戳放入列中之前,您可以從中獲取星期幾。比如'Timestamp = pd.date_range()',然後'Weekdays = Timestamp.weekday',最後'df ['Weekdays'] = Weekdays'。 – user3820991