python - 如何将 MonthYear 字符串转换为日期时间 Pandas?

标签 python pandas date

我目前有一个格式为月年的字符串。月份长度为 3 个字符,年份长度为 4。以下是我拥有的一些日期的一些示例。

apr2021
jun2021
mar2020
dec2020

我在 pandas 数据框中有一个日期,格式为 yyyy-mm-dd hh:mm:ss。我想将这个字符串与 pandas 中的日期进行比较,并确定它是否小于或等于它?有没有办法将这个月-年字符串转换为实际的日期格式?

我打算将日期剥离为 yyyy-mm-dd,然后尝试获取相同格式的月-年字符串,然后进行直接比较。不过,我不太确定是否有更有效的方法来做到这一点?

示例伪代码如下:

temp_date = apr2021 -> 01-04-2021
pandas_date = 29-03-2021

if temp_date < pandas_date:
    do x
else:
    do y

最佳答案

您可以使用 pandas.to_datetime 转换您的日期,无论是在您的数据框中还是在一个独立的字符串中。然后您将能够使用 > 进行比较/<或 Pandas 方法 gt/lt/…:

import pandas as pd
df = pd.DataFrame({'temp_date': ['apr2021', 'jun2021', 'mar2020', 'dec2020']})
df['temp_date'] = pd.to_datetime(df['temp_date'])

pandas_date = pd.to_datetime('29-03-2021') # optional

import numpy as np

df['new_col'] = np.where(df['temp_date'].gt(pandas_date), 'greater', 'lower')

输出:

   temp_date  new_col
0 2021-04-01  greater
1 2021-06-01  greater
2 2020-03-01    lower
3 2020-12-01    lower

注意。在评论之后, datetime 's documentation 中有完整的日期时间格式列表。 ,在你的情况下,这将是 %b%Y : pd.to_datetime('apr2021', format='%b%Y')

关于python - 如何将 MonthYear 字符串转换为日期时间 Pandas?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69726996/

相关文章:

python - 将 PDF 中的至少 100 页替换为另一个 PDF

python - Pandas 数据框fillna()只有一些列到位

python - 代码风格 - "flattening"包的命名空间

python - 被 pandas dtype 转换为 np.float16 值 2053 变成 2052 感到困惑

javascript - 如何根据 php 返回的日期对象在 jquery 中创建一个新的日期对象?

python - 为什么数据框中的日期分配不是日期类型?

高效的python数组交集

python - 我将如何根据查找在 Pandas 中填充 NA 值?

python - python 中固定效应回归(面板数据)的格式化数据?

java - 添加基于用户输入 EditText 的循环日历事件