Python Pandas date_的范围从DatetimeIndex到日期格式
PandasPython Pandas date_的范围从DatetimeIndex到日期格式,python,pandas,Python,Pandas,Pandasdate\u range返回一个Pandas.DatetimeIndex,该索引的格式为时间戳(日期加时间)。例如: In [114] rng=pandas.date_range('1/1/2013','1/31/2013',freq='D') In [115] rng Out [116] <class 'pandas.tseries.index.DatetimeIndex'> [2013-01-01 00:00:00, ..., 2013-01-31 00:00:0
date\u range
返回一个Pandas.DatetimeIndex
,该索引的格式为时间戳(日期加时间)。例如:
In [114] rng=pandas.date_range('1/1/2013','1/31/2013',freq='D')
In [115] rng
Out [116]
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01 00:00:00, ..., 2013-01-31 00:00:00]
Length: 31, Freq: D, Timezone: None
[114]中的rng=pandas.日期范围('2013年1月1日','2013年1月31日',频率'D')
在[115]rng中
Out[116]
[2013-01-01 00:00:00, ..., 2013-01-31 00:00:00]
长度:31,频率:D,时区:无
鉴于我在应用程序中未使用时间戳,我希望将此索引转换为日期,以便:
In [117] rng[0]
Out [118]
<Timestamp: 2013-01-02 00:00:00>
[117]rng[0]中的
出局[118]
将以2013-01-02
的形式发布
我正在使用pandas 0.9.1版返回Pythondatetime的NumPy数组。datetime
对象:
In [8]: dates = rng.to_pydatetime()
In [9]: print(dates[0])
2013-01-01 00:00:00
In [10]: print(dates[0].strftime('%Y-%m-%d'))
2013-01-01
对我来说,目前的答案并不令人满意,因为在内部,它仍然以时间戳的形式存储,包括小时、分钟、秒 熊猫版本:0.22.0 我的解决方案是将其转换为
datetime.date
:
[30]中的:将熊猫作为pd导入
[31]中:rng=pd.日期范围('2013年1月1日','2013年1月31日',频率'D')
在[32]:date_rng=rng.date#这里它变成了date
在[33]中:日期[0]
Out[33]:datetime.date(2013,1,1)
在[34]中:打印(日期为[0])
2013-01-01
没有类似于时间戳
对象的日期戳。如果您要在pandas中进行进一步分析,最好将这些日期保持在Timestamp
s,而忽略零。如果您想提取它们以供输出或显示,@unutbu的解决方案就在下面。是的,为什么不使用时间戳?我正在将结果打印到电子表格中,然后将其用作Access DB的输入。Access DB因零而崩溃。您可以使用,但我不确定电子表格中的格式。注意,您可以直接从时间戳对象应用strftime,例如rng.map(lambda t:t.strftime(“%Y-%m-%d”)
。链接到文档: