使用pandasql提取当前日期月份列失败,求解决方案
解决pandasql提取当前日期月份返回None的问题
问题根源在于pandasql基于SQLite实现,current_date返回的是字符串格式(如'2024-05-20'),而strftime函数需要传入日期/时间对象,直接传字符串会导致解析失败,返回None。
修改SQL查询语句即可解决,以下是两种可行方案:
方案一:将current_date转为日期对象
import pandas as pd import pandasql as psql df=pd.DataFrame() df['index_val'] = [1,2] v_sql_query = '''select *, current_date as date_col, strftime('%B', date(current_date)) as month_col from df; ''' df = psql.sqldf(v_sql_query, locals()) print(df)
方案二:直接使用'now'作为strftime参数
import pandas as pd import pandasql as psql df=pd.DataFrame() df['index_val'] = [1,2] v_sql_query = '''select *, current_date as date_col, strftime('%B', 'now') as month_col from df; ''' df = psql.sqldf(v_sql_query, locals()) print(df)
两种方案都会让month_col正确返回当前月份的全称(如May、June)。
内容的提问来源于stack exchange,提问作者Sandeep
相关产品推荐
相关产品推荐

