【问题标题】:Deleting pandas string value from all rows in a column and convert it to DateTime从列中的所有行中删除 pandas 字符串值并将其转换为 DateTime
【发布时间】:2022-01-17 00:17:24
【问题描述】:

我想删除“- 01”、“- 02”、“- 03”等。在 Hours 列中,然后将 date 和 Hours 列连接为 DateTime。你能帮帮我吗?

提前致谢

【问题讨论】:

    标签: python pandas dataframe datetime


    【解决方案1】:
    df['new_date'] = df['date'].astype(str) + ' ' + df['Volume'].astype(str).replace(r'\s-\s\d+$','', regex=True)
    df['new_date'] = pd.to_datetime(df['new_date'])
    

    这将创建一个新列。如果您愿意,也可以替换日期列并删除小时。

    输出:

    0   2022-01-03 00:00:00
    1   2022-01-04 01:00:00
    2   2022-01-05 02:00:00
    3   2022-01-06 03:00:00
    4   2022-01-07 04:00:00
    5   2022-01-10 05:00:00
    6   2022-01-11 06:00:00
    7   2022-01-12 07:00:00
    8   2022-01-13 08:00:00
    9   2022-01-14 09:00:00
    Name: new_date, dtype: datetime64[ns]
    

    【讨论】:

      【解决方案2】:

      使用 str.cat . 连接两列。 str.partition 到 partition 应该可以帮助您消除数小时内不需要的文本。代码如下

      df= df.assign(newdate=df['date'].str.cat(df['Hours'].str.partition('-')[0], sep=" "))
      
       
      
          date      Hours        newdate
      0  01/01/2020  01-02  01/01/2020 01
      1  01/01/2020  01-03  01/01/2020 01
      2  01/01/2020  01-02  01/01/2020 01
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-17
        • 1970-01-01
        • 2011-11-30
        • 2012-10-29
        • 2021-06-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-06
        相关资源
        最近更新 更多