【问题标题】:Pandas: How to convert datetime convert to %H:%H and stays as datetime format?Pandas:如何将日期时间转换为 %H:%H 并保持日期时间格式?
【发布时间】:2020-06-18 23:06:57
【问题描述】:

我在所有不同时间的 1 列中有一个数据框。

Time
-----
10:00
11:30
12:30
14:10
...

我需要用下面的代码在这个数据帧上做一个分位数范围:

df.quantile([0,0.5,1],numeric_only=False)

按照下面的链接,分位数确实有效。 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.quantile.html

作为对象中的列,我需要转换为 pd.datetime 或 pd.Timestamp。 当我转换为 pd.datetime 时,我的所有时间也会插入日期。 如果我将其格式化为 %H:%M,则该列将返回到在 numeric_only 模式下无法使用分位数的对象。

如何转换为 %H:%M 中的日期时间格式并仍然坚持日期时间格式?

以下是我使用的代码:

df = pd.DataFrame({"Time":["10:10","09:10","12:00","13:23","15:23","17:00","17:30"]})
df['Time2'] = pd.to_datetime(df['Time']).dt.strftime('%H:%M')
df['Time2'] = df['Time2'].astype('datetime64[ns]')

【问题讨论】:

    标签: pandas datetime string-to-datetime


    【解决方案1】:

    如何转换为 %H:%M 中的日期时间格式并仍然坚持日期时间格式?

    在熊猫中不可能,也许更接近使用timedeltas:

    df = pd.DataFrame({"Time":["10:10","09:10","12:00","13:23","15:23","17:00","17:30"]})
    df['Time2'] = pd.to_timedelta(df['Time'].add(':00'))
    print (df)
        Time    Time2
    0  10:10 10:10:00
    1  09:10 09:10:00
    2  12:00 12:00:00
    3  13:23 13:23:00
    4  15:23 15:23:00
    5  17:00 17:00:00
    6  17:30 17:30:00
    

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      相关资源
      最近更新 更多