将非标准字符串转换/修改为 Python DataFrame 的日期时间

Posted

技术标签:

【中文标题】将非标准字符串转换/修改为 Python DataFrame 的日期时间【英文标题】:Converting/Modifying non-standard string into datetime for Python DataFrame 【发布时间】:2022-01-24 02:22:42 【问题描述】:

所以我有一组按月销售的数据(不是按顺序),但data 列的字符串格式为month/day/year hour:minute

例如:04/19/19 18:27,它是一个字符串对象。

我怎样才能把它转换成我只取月和日的日期时间?

另外,我怎样才能只取月份并将其转换为整数?

【问题讨论】:

pd.to_datetime(df['date']) 应该开箱即用;格式非常标准,月份排在第一位,这也是 pd.to_datetime 的默认设置。 【参考方案1】:

要将其转换为日期时间,请使用pd.to_datetime()

df['date'] = pd.to_datetime(df['date'], format="%m/%d/%y %H:%M")

要算出月份,请在运行上述内容后使用它:

df['month'] = df['date'].dt.month

要将其转换为YYYY-MM 格式:

df['year-month'] = df['a'].dt.strftime('%Y-%m')

正如我们所讨论的in chat,这不起作用,因为列名在不同点作为行复制到数据框中。

【讨论】:

有什么方法可以将初始日期转换为月/日? 现在检查答案,@swordlordswamplord。 ;) 好吧,由于某种原因,我收到一个值错误:ValueError: time data '04/19/19 08:46' does not match format '%m%d%Y %H:%M' (匹配)。我同时使用了大写和小写的 Y 你必须使用小写的y,因为那是两位数的年份。 Y 是 4 位数年份。不过,看起来您的日期格式中没有斜杠。 %m%d%Y 应该是 %m/%d/%Y ValueError: 时间数据 'Order Date' 与格式 '%m/%d/%y %H:%M' 不匹配(匹配)如果需要,我可以链接 csv 文件

以上是关于将非标准字符串转换/修改为 Python DataFrame 的日期时间的主要内容,如果未能解决你的问题,请参考以下文章

将非数字字符串转换为整数?

将非数字字符串转换为整数?

如何使用 JavaScript 将非英文字符转换为英文

MFC CEdit 将非 ascii 字符转换为 ascii

将非 ASCII 字符(变音符号、重音符号...)转换为最接近的 ASCII 等效字符(创建 slug)

将非 ASCII 字符从 ASCII-8BIT 转换为 UTF-8