【问题标题】:String manipulation pandas字符串操作熊猫
【发布时间】:2021-12-14 15:50:03
【问题描述】:

我有一个名为Timestamp 类型为str 的列,我想将该列的值更改为更合适的格式,即3533:53 pm

如何使用 pandas 或适当的字符串操作来做到这一点?

c = pd.DataFrame({"Timestamp":x,"Latitude":y,"Longitude":z})
c.head()

【问题讨论】:

  • 试试df['Timestamp'] = pd.to_datetime(df['Timestamp'], format='%H%M').dt.time

标签: python pandas string datetime format


【解决方案1】:

您可以在列上调用apply 并传递一个函数,该函数将拆分每个字符串并插入一个冒号:

c['Timestamp'].apply(lambda x: x[0:-2] + ':' + x[-2:])

【讨论】:

    【解决方案2】:

    这也可以:

    from datetime import datetime
    
    c['Timestamp'].apply(lambda x: datetime.strptime(x.rjust(4, '0'), '%H%M').strftime('%H:%M'))
    

    【讨论】:

    • 使用第一种或第二种解决方案是否有任何赞成或反对意见?我刚刚检查了一下,两次 col 都是一样的,而单元格是字符串....所以我想,没关系?
    • 这取决于您的用例。如果您的数据只是 %H%M,并且您想要一个冒号,那么它们基本上是等价的。如果您有更复杂的日期格式的数据,我会使用这个datetime 解决方案,因为使用它来操作完整日期要容易得多。
    【解决方案3】:

    (只是想把这个放在这里)

    正如 @ChrisA 在 cmets 中提到的,您也可以这样做:

    c['Timestamp'] = pd.to_datetime(c['Timestamp'], format='%H%M').dt.time
    

    【讨论】:

      猜你喜欢
      • 2017-02-16
      • 2015-05-18
      • 1970-01-01
      • 2018-10-31
      • 2014-04-05
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      相关资源
      最近更新 更多