如何使用熊猫转换日期时间格式

时间:2020-05-12 16:34:54

标签: pandas datetime

我正在用Pandas读取csv文件。文件中有一列,其日期为 dd / mm / yyyy 格式。

def load_csv():   
    mydateparser = lambda x: dt.datetime.strptime(x, "%d/%m/%Y")
    return pd.read_csv('myfile.csv', delimiter=';', parse_dates=['data'], date_parser=mydateparser)

使用此解析器,“数据”列的类型变为数据datetime64 [ns] ,但格式更改为 yyyy-mm-dd

我需要将“数据”列的类型设置为 datetime64 [ns] ,并将其格式设置为 dd / mm / yyyy

怎么办?

关于, 艾里奥·费尔南德斯(Elio Fernandes)

1 个答案:

答案 0 :(得分:0)

日期未以yyyy-mm-dd格式或dd/mm/yyyy格式存储。它以 datetime 格式存储。 Python默认情况下选择以yyyy-mm-dd格式显示它。但是请不要误解,它仍然以日期时间格式存储。
如果您将时间添加到数据,然后尝试显示它,将会有一个更好的主意。
实现所需功能的方法是在显示之前立即将日期更改为字符串,因此,日期时间仍保留在数据框中,但显示时会得到指定的字符串格式。

以下使用 Series.strftime()更改为字符串。文档here

df['data'].strftime('%d/%m/%Y')



以下使用 datetime.strftime()更改为字符串。文档here

df['data'].apply(lambda x: x.strftime('%Y-%m-%d'))

有关更多信息,请查看strftime-and-strptime-behavior



这个问题对于理解datetime如何存储在python中将大有帮助: How does Python store datetime internally?