Nhy*_*hyi 2 python date pandas
我目前有一个格式为月年的字符串。月份的长度为 3 个字符,年份的长度为 4 个字符。下面是我拥有的一些日期的一些示例。
apr2021
jun2021
mar2020
dec2020
Run Code Online (Sandbox Code Playgroud)
我在 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
Run Code Online (Sandbox Code Playgroud)
您可以使用pandas.to_datetime它来转换数据框中的日期和独立字符串的日期。然后您将能够使用>/<或 pandas 方法gt/ lt/\xe2\x80\xa6 进行比较:
import pandas as pd\ndf = pd.DataFrame({\'temp_date\': [\'apr2021\', \'jun2021\', \'mar2020\', \'dec2020\']})\ndf[\'temp_date\'] = pd.to_datetime(df[\'temp_date\'])\n\npandas_date = pd.to_datetime(\'29-03-2021\') # optional\n\nimport numpy as np\n\ndf[\'new_col\'] = np.where(df[\'temp_date\'].gt(pandas_date), \'greater\', \'lower\')\nRun Code Online (Sandbox Code Playgroud)\n输出:
\n temp_date new_col\n0 2021-04-01 greater\n1 2021-06-01 greater\n2 2020-03-01 lower\n3 2020-12-01 lower\nRun Code Online (Sandbox Code Playgroud)\n注意。跟进评论,datetime文档中有完整的日期时间格式列表,在您的情况下,这将是%b%Y:pd.to_datetime(\'apr2021\', format=\'%b%Y\')