熊猫:转换系列时间戳只保留YYYY-MM-DD格式

时间:2017-03-14 16:43:41

标签: python date pandas datetime

假设您要使用YYYY-MM-DD1990-1-11991-12-31pandas格式创建一系列时间戳:

import pandas
import datetime

start = datetime.date(1990, 1, 1)
end = datetime.date(1991, 12, 31)
s = pandas.Series(pandas.date_range(start=start, end=end, freq='D'))

结果是:

In[1]: s
Out[1]:
0     1990-01-01
1     1990-01-02
2     1990-01-03
3     1990-01-04
...

如何将s变成列表?如果我做

In[2]: s.tolist()
Out[2]: 
[Timestamp('1990-01-01 00:00:00'),
 Timestamp('1990-01-02 00:00:00'),
 Timestamp('1990-01-03 00:00:00'),
 Timestamp('1990-01-04 00:00:00'),
...

我不仅获得了日期,还获得了我不需要的其他信息。 我的问题:如何才能从YYYY-MM-DD获取s(字符串)值?

1 个答案:

答案 0 :(得分:3)

使用.dt.strftime以您想要的字符串格式输出日期:

In [114]:
s.dt.strftime('%Y-%m-%d').head()

Out[114]:
0    1990-01-01
1    1990-01-02
2    1990-01-03
3    1990-01-04
4    1990-01-05
dtype: object

In [115]:
s.dt.strftime('%Y-%m-%d').head().tolist()

Out[115]:
['1990-01-01', '1990-01-02', '1990-01-03', '1990-01-04', '1990-01-05']

注意虽然当dtype是datetime时你不能修改pandas日期显示格式,你只能以你想要的格式生成一个字符串,但这不太有用IMO

<强>更新

如果您正在获取unicode字符串,那么您可以查看:https://stackoverflow.com/questions/4855645/how-to-turn-unicode-strings-into-regular-strings将它们转换为常规字符串