Pandas 从一列字符串中删除字符

王林
发布: 2024-02-06 08:21:11
转载
1684人浏览过

pandas 从一列字符串中删除字符

问题内容

我有一个数据框,其中包含由这种格式的字符串组成的日期列。我需要去掉字符串的末尾,以便可以转换为日期时间对象。

"20231101 05:00:00 america/new_york"
"20231101 06:00:00 america/new_york"
登录后复制

我尝试过这些方法但没有成功。

df['Date'] = df['Date'].replace('^.*\]\s*', '', regex=True)
df['Date'] = df['Date'].str.strip(' America/New_York')
df['Date'] = df['Date'].map(lambda x: x.rstrip(' America/NewYork'))``
登录后复制

以及根据我的搜索得出的其他一些内容。有没有一种简单的方法可以做到这一点,或者我应该编写一个函数来通过抓取前 17 个字符并将结果分配回 df 来对字符串进行切片。

请注意,字符串的格式可能为 '20231101 05:00:00 america/central'

感谢您提供的所有帮助。


正确答案


  • 如果您想删除特定后缀,那么我建议 str.removesuffix 而不是 str.strip。
  • 请注意,您有时会编写带下划线的 new_york,有时会编写不带下划线的 newyork。如果您要求删除 'newyork',则 'new_york' 将不会被删除。
  • 您的问题编辑后,后缀均以 'america' 开头,但后面有所不同;在这种情况下,您可以使用 str.split(' america').str[0] 保留 ' america' 之前的所有内容。
import pandas as pd

df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Date': ["20231101 05:00:00 America/New_York",
             "20231101 06:00:00 America/New_York",
             "20231101 07:00:00 America/Central"]
})

# df['Date'] = df['Date'].str.removesuffix(' America/New_York')
df['Date'] = df['Date'].str.split(' America').str[0]

print(df)
#      Name               Date
# 0    Alice  20231101 05:00:00
# 1      Bob  20231101 06:00:00
# 2  Charlie  20231101 07:00:00
登录后复制

以上就是Pandas 从一列字符串中删除字符的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:stackoverflow网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号