首页 文章

将Pandas Column转换为DateTime

提问于
浏览
103

我在pandas DataFrame中有一个字段,它以字符串格式导入 . 它应该是一个日期时间变量 . 如何将其转换为日期时间列,然后根据日期进行过滤 .

例:

  • DataFrame名称: raw_data

  • 列名: Mycol

  • 列中的值格式: '05SEP2014:00:00:00.000'

3 回答

  • 212

    您可以使用DataFrame方法.apply()来操作Mycol中的值:

    >>> df = pd.DataFrame(['05SEP2014:00:00:00.000'],columns=['Mycol'])
    >>> df
                        Mycol
    0  05SEP2014:00:00:00.000
    >>> import datetime as dt
    >>> df['Mycol'] = df['Mycol'].apply(lambda x: 
                                        dt.datetime.strptime(x,'%d%b%Y:%H:%M:%S.%f'))
    >>> df
           Mycol
    0 2014-09-05
    
  • 35
    raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], format='%d%b%Y:%H:%M:%S.%f')
    

    但是它会导致Python警告的A值试图在DataFrame的切片副本上设置 . 请尝试使用 .loc[row_indexer,col_indexer] = value

    我猜这是由于一些链式索引 .

  • 10

    使用to_datetime函数,指定format以匹配您的数据 .

    raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], format='%d%b%Y:%H:%M:%S.%f')
    

相关问题