【问题标题】:How to convert this string to datetime and date alone如何将此字符串单独转换为日期时间和日期
【发布时间】:2014-05-24 11:30:35
【问题描述】:

这个问题远非唯一,但我找不到将包含在此 df 列中的字符串转换为 datetime 和 date only 对象的方法,以便将它们用作我的数据框的索引。

如何将此字符串转换为日期时间或日期格式以将其用作我的 df 的索引?

本栏具体格式如下:

>>> data['DateTime']
0     20140101 00:00:00
1     20140101 00:00:00
3     20140101 00:00:00
4     20140101 00:00:00
5     20140101 00:00:00
6     20140101 00:00:00
7     20140101 00:00:00
8     20140101 00:00:00
9     20140101 00:00:00 
10    20140101 00:00:00
Name: DateTime, Length: 3779, dtype: object

【问题讨论】:

  • 如果不清楚,格式为:YEAR、MONTH、DAY。谢谢。

标签: date datetime pandas


【解决方案1】:

使用to_datetime 将字符串转换为日期时间,你可以传递一个格式化字符串,但在这种情况下它似乎处理得很好,然后如果你想要一个日期然后调用apply 并使用 lambda 调用.date() 在每个日期时间条目上:

In [59]:

df = pd.DataFrame({'DateTime':['20140101 00:00:00']*10})
df

Out[59]:
            DateTime
0  20140101 00:00:00
1  20140101 00:00:00
2  20140101 00:00:00
3  20140101 00:00:00
4  20140101 00:00:00
5  20140101 00:00:00
6  20140101 00:00:00
7  20140101 00:00:00
8  20140101 00:00:00
9  20140101 00:00:00
In [60]:

df['DateTime'] = pd.to_datetime(df['DateTime'])
df.dtypes
Out[60]:
DateTime    datetime64[ns]
dtype: object
In [61]:

df['DateTime'] = df['DateTime'].apply(lambda x:x.date())
print(df)
df.dtypes
     DateTime
0  2014-01-01
1  2014-01-01
2  2014-01-01
3  2014-01-01
4  2014-01-01
5  2014-01-01
6  2014-01-01
7  2014-01-01
8  2014-01-01
9  2014-01-01
Out[61]:
DateTime    object
dtype: object

【讨论】:

  • 仅供参考,您可以使用 DatetimeIndex 并使用 date()
猜你喜欢
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 2015-09-17
相关资源
最近更新 更多