我目前有一个格式为月年的字符串。月份长度为 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/