字符串操作熊猫
Posted
技术标签:
【中文标题】字符串操作熊猫【英文标题】:String manipulation pandas 【发布时间】:2021-12-14 15:50:03 【问题描述】:我有一个名为Timestamp
类型为str
的列,我想将该列的值更改为更合适的格式,即353
到3: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
【参考方案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
【讨论】:
以上是关于字符串操作熊猫的主要内容,如果未能解决你的问题,请参考以下文章