2016-08-08 4 views
0
>>>df = pd.DataFrame(index=pd.date_range(DT.datetime(2016,8,1), DT.datetime(2016,8,9)), columns=['a','b']) 
>>>df.index 

DatetimeIndex(['2016-08-01', '2016-08-02', '2016-08-03', '2016-08-04', 
      '2016-08-05', '2016-08-06', '2016-08-07', '2016-08-08', 
      '2016-08-09'], 
      dtype='datetime64[ns]', freq='D', tz=None) 
>>>df.index.values.tolist() 

[1470009600000000000L, 
1470096000000000000L, 
1470182400000000000L, 
1470268800000000000L, 
1470355200000000000L, 
1470441600000000000L, 
1470528000000000000L, 
1470614400000000000L, 
1470700800000000000L] 

基本的にdatetime64 [ns]形式は自動的に長い形式に変換されます。これらの操作のフォーマットを維持できる方法はありますか?そうでなければ、私がdfコンテンツにアクセスしたい場合は、それを元に戻す必要があります。例えばリストに変換するときのdatetime64の元の形式を保持

>>>df.loc[df.index.values.tolist()[3]] 

>>>df.loc[df.index.values[3]] 

作品ながら、動作しません。

答えて

2

元の形式を.datepandas.DatetimeIndex.dateを使用してリストに変換して保持することができます。pandas.DatetimeIndex.dateは、タイムスタンプの日付部分を返します。

In [14]: df.index.date.tolist() 
Out[14]: 
[datetime.date(2016, 8, 1), 
datetime.date(2016, 8, 2), 
datetime.date(2016, 8, 3), 
datetime.date(2016, 8, 4), 
datetime.date(2016, 8, 5), 
datetime.date(2016, 8, 6), 
datetime.date(2016, 8, 7), 
datetime.date(2016, 8, 8), 
datetime.date(2016, 8, 9)] 
関連する問題