字符串操作熊猫

Posted

技术标签:

【中文标题】字符串操作熊猫【英文标题】: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 【参考方案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

【讨论】:

以上是关于字符串操作熊猫的主要内容,如果未能解决你的问题,请参考以下文章

将字符串日期时间转换为熊猫日期时间

将列字符串转换/解析为日期时间值 - 熊猫

如何从熊猫系列中的字符串中去除“$”符号?

如何在不同情况下使用正则表达式修改熊猫中的字符串

在熊猫数据框中替换特殊字符

替换熊猫数据框系列中的每个值[重复]