如何使用熊猫更改数据框中的日期时间格式? [复制]

Posted

技术标签:

【中文标题】如何使用熊猫更改数据框中的日期时间格式? [复制]【英文标题】:How to change datetime format in dataframe with using pandas? [duplicate] 【发布时间】:2018-05-13 14:52:06 【问题描述】:

我是熊猫学习者。

我有一个包含“DATE”列的数据框,该列的日期时间格式类似于“11/1/2017 1:00”。我想将日期时间格式从 '11/1/2017 1:00' 更改为 '1-Dec-17 1:00',我尝试了以下代码:

dir_path = os.path.dirname(os.path.realpath("__file__"))
print(dir_path)

def parse_dates(x):
    return datetime.strptime(x, "%d-%b-%y %H:%M")

df = pd.read_csv(dir_path+"/TEST.csv", parse_dates=['DATE'],date_parser=parse_dates)

但它显示错误:

ValueError:时间数据 '11/1/2017 1:00' 与格式 '%d-%b-%y 不匹配 %H:%M'

我也尝试转换数据框,但失败了:

df=pd.read_csv(dir_path+"/TEST.csv")
df['DATE'] = pd.to_datetime(df['DATE'],format='%d-%b-%y %H:%M')

再次显示错误:

ValueError:时间数据 '11/1/2017 1:00' 与格式 '%d-%b-%y 不匹配 %H:%M'(匹配)

【问题讨论】:

【参考方案1】:
df=pd.DataFrame('Time':[ '11/1/2017 1:00', '11/1/2017 1:00', '11/1/2017 1:00', '11/1/2017 1:00'])
df.Time=pd.to_datetime(df.Time).dt.strftime('%d-%b-%y %H:%M')
df
Out[870]: 
              Time
0  01-Nov-17 01:00
1  01-Nov-17 01:00
2  01-Nov-17 01:00
3  01-Nov-17 01:00

【讨论】:

这有帮助。谢谢文。 @HavenShi yw :-)【参考方案2】:

简单的答案是您对 strptime 函数的 format 参数是错误的。你想要datetime.strptime(x, "%m-%d-%Y %H:%M")

另外,请确保您的所有数字都被填充(即对于月份,请确保一月的数字是 01 而不是 1。分钟和天的想法相同),否则这可能会失败。

我建议您查看python page for strptime formatting,以了解有关如何格式化日期的更多信息。

【讨论】:

为我做到了!感谢您的解决方案!

以上是关于如何使用熊猫更改数据框中的日期时间格式? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用熊猫更改数据框中的特定行值? [复制]

如何更改数据框中日期的格式? [复制]

将纪元时间转换为熊猫数据框中的格式化日期字符串

填补熊猫数据框中的日期空白

如何将数据框中的多列合并为 Pandas 日期时间格式

如何规范化熊猫数据框中的以下日期?