转换为列表时保留datetime64的原始格式

时间:2016-08-08 12:20:12

标签: python pandas python-datetime

>>>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内容。例如

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

不起作用,而

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

作品。

1 个答案:

答案 0 :(得分:2)

使用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)] 返回时间戳的日期部分,您可以保留原始格式,同时将其转换为列表。

.arrow {
  width: 21px;
  height: 57px;
}
.pagination {
  max-width: 100%;
}
.pagination_sub {
  width: 700px;
  height: 57px;
  margin: auto;
  display: flex;
  align-items: center;
}
.pagination_pre {
  width: 410px;
  height: 57px;
}
.greypagination {
  width: 33px;
  height: 57px;
}
.prearrow {
  width: 12px;
  height: 57px;
}
.prepagination {
  width: 44px;
  height: 57px;
}