2017-09-30 429 views

回答

1

轉換爲Timedeltadt.total_seconds提取總秒數:

data = \ 
{'date': {0: pd.Timestamp('2013-01-01 00:00:00'), 
      1: pd.Timestamp('2013-01-02 00:00:00'), 
      2: pd.Timestamp('2013-01-03 00:00:00'), 
      3: pd.Timestamp('2013-01-04 00:00:00'), 
      4: pd.Timestamp('2013-01-05 00:00:00'), 
      5: pd.Timestamp('2013-01-06 00:00:00'), 
      6: pd.Timestamp('2013-01-07 00:00:00'), 
      7: pd.Timestamp('2013-01-08 00:00:00'), 
      8: pd.Timestamp('2013-01-09 00:00:00'), 
      9: pd.Timestamp('2013-01-10 00:00:00')}} 

df = pd.DataFrame.from_dict(data) 
df 

     date 
0 2013-01-01 
1 2013-01-02 
2 2013-01-03 
3 2013-01-04 
4 2013-01-05 
5 2013-01-06 
6 2013-01-07 
7 2013-01-08 
8 2013-01-09 
9 2013-01-10 

pd.to_timedelta(df.date).dt.total_seconds() 

0 1.356998e+09 
1 1.357085e+09 
2 1.357171e+09 
3 1.357258e+09 
4 1.357344e+09 
5 1.357430e+09 
6 1.357517e+09 
7 1.357603e+09 
8 1.357690e+09 
9 1.357776e+09 
Name: date, dtype: float64 

或者,也許,數據會更有用,如int類型:

pd.to_timedelta(df.date).dt.total_seconds().astype(int) 

0 1356998400 
1 1357084800 
2 1357171200 
3 1357257600 
4 1357344000 
5 1357430400 
6 1357516800 
7 1357603200 
8 1357689600 
9 1357776000 
Name: date, dtype: int64 
+0

嘗試df.date.values.astype(float)一次 – Dark

+0

@Bharathshetty'不能從類似datetimelike [datetime64 [ns]]到[float64]' –

+0

它爲我工作。 – Dark

2

使用astype浮動也就是說,如果你有一個像

df = pd.DataFrame({'date': ['1998-03-01 00:00:01', '2001-04-01 00:00:01','1998-06-01 00:00:01','2001-08-01 00:00:01','2001-05-03 00:00:01','1994-03-01 00:00:01'] }) 
df['date'] = pd.to_datetime(df['date']) 
df['x'] = list('abcdef') 
df = df.set_index('date') 

一個數據幀然後

df.index.values.astype(float) 

array([ 8.88710401e+17, 9.86083201e+17, 8.96659201e+17, 
    9.96624001e+17, 9.88848001e+17, 7.62480001e+17]) 

pd.to_datetime(df.index.values.astype(float)) 

DatetimeIndex(['1998-03-01 00:00:01', '2001-04-01 00:00:01', 
      '1998-06-01 00:00:01', '2001-08-01 00:00:01', 
      '2001-05-03 00:00:01', '1994-03-01 00:00:01'], 
      dtype='datetime64[ns]', freq=None) 
+0

請注意自2017年以來的秒數爲10e9,因此10e17不正確。請參閱https://stackoverflow.com/a/46502880/4909087並運行https://stackoverflow.com/questions/4548684/how-to-get-the-seconds-since-epoch-from-the-time-date- gmtime-in-py的輸出 –

+0

但是,當您將其轉換回pd.to_datetime時,返回原始日期na – Dark

+0

是的,但是我認爲OP想要使用曆元時間。我不知道astype給出了什麼,但它看起來像一個錯誤?這絕對不是時代。 –

相關問題