从字符串中获取日期时间格式 python
Get datetime format from string python
在Python中有多个日期时间解析器,可以在不提供日期时间格式的情况下自动解析日期字符串。我的问题是我不需要转换日期时间,我只需要日期时间格式。
示例:
从“2021-01-01”开始,我想要类似“%Y-%m-%d”或“yyyy-MM-dd”的内容。
我唯一的想法是尝试使用不同的格式进行转换并获得成功,但我不想列出所有可能的格式。
我正在使用 pandas,因此我可以使用适用于系列或字符串 DateTime 解析器的方法。
有什么想法吗?
在pandas
中,这是通过pandas._libs.tslibs.parsing.guess_datetime_format
实现的
from pandas._libs.tslibs.parsing import guess_datetime_format
guess_datetime_format('2021-01-01')
# '%Y-%m-%d'
由于 day/month 总是会出现歧义,您可以指定 dayfirst 的大小写:
guess_datetime_format('2021-01-01', dayfirst=True)
# '%Y-%d-%m'
请看看哪一个最适合你:
df['Column'] = df['Column'].dt.strftime("%Y-%m-%d")
df['Column'] = pd.to_datetime(df['Column']).dt.date
df['Column'] = pd.to_datetime(df['Column']).dt.normalize()
前两个选项的数据类型为对象;
而第 3 个具有规范化的将是日期时间。
你可以这样试试,不过我不确定。
for col in df.select_dtypes(include['datetime64']).columns.tolist():
df[col] = df[col].astype(str)
在Python中有多个日期时间解析器,可以在不提供日期时间格式的情况下自动解析日期字符串。我的问题是我不需要转换日期时间,我只需要日期时间格式。
示例: 从“2021-01-01”开始,我想要类似“%Y-%m-%d”或“yyyy-MM-dd”的内容。
我唯一的想法是尝试使用不同的格式进行转换并获得成功,但我不想列出所有可能的格式。
我正在使用 pandas,因此我可以使用适用于系列或字符串 DateTime 解析器的方法。
有什么想法吗?
在pandas
中,这是通过pandas._libs.tslibs.parsing.guess_datetime_format
from pandas._libs.tslibs.parsing import guess_datetime_format
guess_datetime_format('2021-01-01')
# '%Y-%m-%d'
由于 day/month 总是会出现歧义,您可以指定 dayfirst 的大小写:
guess_datetime_format('2021-01-01', dayfirst=True)
# '%Y-%d-%m'
请看看哪一个最适合你:
df['Column'] = df['Column'].dt.strftime("%Y-%m-%d")
df['Column'] = pd.to_datetime(df['Column']).dt.date
df['Column'] = pd.to_datetime(df['Column']).dt.normalize()
前两个选项的数据类型为对象;
而第 3 个具有规范化的将是日期时间。
你可以这样试试,不过我不确定。
for col in df.select_dtypes(include['datetime64']).columns.tolist():
df[col] = df[col].astype(str)