您好,我想将数据框列(字符串)转换为日期。我发现它正确转换了一些日期,但其中一些是错误的。
df
Id Date Rev
1605380 1/12/2018 3000.0
2237851 27/11/2018 3000.0
1797180 11/2/2018 2000.0
1156126 9/1/2018 2000.0
1205792 8/4/2017 2000.0
df['Date'] = pd.to_datetime(df['Date'])
我得到的结果
Id Date Rev
1605380 2018-01-12 3000.0
2237851 2018-11-27 3000.0
1797180 2018-11-02 2000.0
1156126 2018-09-01 2000.0
1205792 2017-08-04 2000.0
似乎如果“日”不是两位数,datetime 将其转换为“月”而不是“日”。因此,1/12/2018 应该是 2018-12-01,而不是 2018-01-12。 我该如何解决这个问题?
实际上我只需要输出年和月。
理想输出
Id Date Rev
1605380 2018-12 3000.0
2237851 2018-11 3000.0
1797180 2018-02 2000.0
1156126 2018-01 2000.0
1205792 2017-04 2000.0
最佳答案
您只需将 format
参数指定给 '%d/%m/%Y'
即可明确告知注释的日期格式。或者将 dayfirst
设置为 True
。日期时间对象实际上包含年、月、日和时间的信息,因此要仅显示月和年,您必须转换回字符串:
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True).dt.strftime('%Y-%m')
关于python - 将字符串转换为日期时间 - python 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54247676/