【问题标题】:Python pandas - Convert string to datetime without a year using pandas.to_datetime()Python pandas - 使用 pandas.to_datetime() 将字符串转换为没有年份的日期时间
【发布时间】:2021-06-18 07:01:59
【问题描述】:

我在数据框中有一列有时间戳,它们的数据类型是对象(字符串):

data_log = pd.read_csv(DATA_LOG_PATH)
print(data_log['LocalTime'])

0      09:38:49 
1      09:38:50 
2      09:38:51 
3      09:38:52 
4      09:38:53
         ...    
Name: LocalTime, Length: 872, dtype: object

现在我尝试转换为日期时间:

data_log['LocalTime'] = pd.to_datetime(data_log['LocalTime'], format='%H:%M:%S')
print(data_log['LocalTime'])

0     1900-01-01 09:38:49
1     1900-01-01 09:38:50
2     1900-01-01 09:38:51
3     1900-01-01 09:38:52
4     1900-01-01 09:38:53
              ...        
Name: LocalTime, Length: 872, dtype: datetime64[ns]

如何在此处删除该日期?我只想要我指定格式的时间,但它将 1900-01-01 添加到每一行。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以通过 1900-01-01 的数据类型以不同的方式执行此操作:

    data_log['LocalTime'] = pd.Series([lt.time() for lt in data_log['LocalTime']])
    

    或使用 lambda 函数:

    data_log['LocalTime'] = data_log.LocalTime.apply(lambda x: x.time(), axis = 1)
    

    【讨论】:

      【解决方案2】:

      用于检查特定列中的类型:

      print(df['LocalTime'].dtypes) 
      

      to_dateTime 来自 pandas 的函数

      https://pandas.pydata.org/docs/reference/api/pandas.to_datetime.html

      df['LocalTime'] = pd.to_datetime(df['timestamp'], unit='s')
      

      其中:unit='s' 定义时间戳的单位(在本例中为秒)

      考虑时区:

      df.rimestamp.dt.tz_localize('UTC').dt.tz_convert('Europe/Brussels')
      

      【讨论】:

        【解决方案3】:

        您可以使用 Series.dt.time 获取日期时间系列的时间部分

        print(data_log['LocalTime'].dt.time)
        

        本系列将包含 Python 标准库 datetime.time 对象。

        【讨论】:

        • 谢谢,我很困惑为什么它仍然说对象为 dtype,但是当我遍历它并使用 python type() 函数时,它确实说 datetime.time。不管怎样,谢谢!
        • Dtype 对象意味着 Series 是一个包含指向 python 对象的指针的数组。这些对象甚至不必是同一类型。其他数据类型要严格得多,只能用于单一类型的数据。这意味着它们可以提高内存效率,向量化操作可以明显更快,但以灵活性为代价。 object dtype 用于没有相应 numpy 类型的 python 类型。 stackoverflow.com/questions/29877508/…
        猜你喜欢
        • 1970-01-01
        • 2022-07-04
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-12
        相关资源
        最近更新 更多