Pandas:未来警告:改用 pd.to_datetime
Pandas: FutureWarning: Use pd.to_datetime instead
我正在使用 Pandas 读取 .xlsx 文件,如下所示:
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date'],
date_parser = lambda x: datetime.strftime(x, '%Y-%m-%d')
)
这工作正常,但我收到来自 Pandas 的警告:
.venv/lib/python3.8/site-packages/pandas/io/parsers.py:3339: FutureWarning:
Use pd.to_datetime instead.
return generic_parser(date_parser, *date_cols)
我在某处读到 Pandas 正在弃用日期时间。
- 任何人都可以帮我将 date_parser 表达式转换为使用 pd.to_datetime 吗?
编辑:对于不够清晰,我们深表歉意。 client_file 日期时间对象如下:
YYYY-MM-DD HH:MM:SS
我需要提取以下内容作为 str 对象:
YYYY-MM-DD
编辑:@jezrael 的回答(下方)完美运行 - 谢谢 jezrael!
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date'],
converters={'Event Date': lambda x: pd.to_datetime(x).strftime('%Y-%m-%d')}
)
编辑 2:@MrFuppes 指出我根本不需要解析日期。在这种情况下,他的解决方案可能更好,如下所示:
client_df = pd.read_excel(
client_file,
header = 1,
converters = {'Event Date': lambda x: x.strftime('%Y-%m-%d')}
)
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date']
)
client_df['Event Date'] = client_df['Event Date'].dt.strftime('%Y-%m-%d')
如果需要 read_excel
的解决方案,请使用 converters
:
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date'],
converters={'Event Date': lambda x: pd.to_datetime(x).strftime('%Y-%m-%d')}
)
另一个想法是只使用 strftime
就像指出@MrFuppes:
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date'],
converters={'Event Date': lambda x: x.strftime('%Y-%m-%d')}
)
我正在使用 Pandas 读取 .xlsx 文件,如下所示:
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date'],
date_parser = lambda x: datetime.strftime(x, '%Y-%m-%d')
)
这工作正常,但我收到来自 Pandas 的警告:
.venv/lib/python3.8/site-packages/pandas/io/parsers.py:3339: FutureWarning:
Use pd.to_datetime instead.
return generic_parser(date_parser, *date_cols)
我在某处读到 Pandas 正在弃用日期时间。
- 任何人都可以帮我将 date_parser 表达式转换为使用 pd.to_datetime 吗?
编辑:对于不够清晰,我们深表歉意。 client_file 日期时间对象如下:
YYYY-MM-DD HH:MM:SS
我需要提取以下内容作为 str 对象:
YYYY-MM-DD
编辑:@jezrael 的回答(下方)完美运行 - 谢谢 jezrael!
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date'],
converters={'Event Date': lambda x: pd.to_datetime(x).strftime('%Y-%m-%d')}
)
编辑 2:@MrFuppes 指出我根本不需要解析日期。在这种情况下,他的解决方案可能更好,如下所示:
client_df = pd.read_excel(
client_file,
header = 1,
converters = {'Event Date': lambda x: x.strftime('%Y-%m-%d')}
)
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date']
)
client_df['Event Date'] = client_df['Event Date'].dt.strftime('%Y-%m-%d')
如果需要 read_excel
的解决方案,请使用 converters
:
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date'],
converters={'Event Date': lambda x: pd.to_datetime(x).strftime('%Y-%m-%d')}
)
另一个想法是只使用 strftime
就像指出@MrFuppes:
client_df = pd.read_excel(
client_file,
header = 1,
parse_dates = ['Event Date'],
converters={'Event Date': lambda x: x.strftime('%Y-%m-%d')}
)