我的日期格式在数据库中是这样的格式:9/15/2017 5:01:44 AM
但是当 read_sql 使用 pandas 时,日期格式变成这样2017-09-15 05:01:44
这里有两个问题:
- 第一个是/更改为-
- 第二个是 mm/dd/yyyy 更改为 tod yyyy-mm-dd。年成为第一个元素。
主要问题是我在不同的表中有不同格式的日期列,有些只是日期,有些是日期和时间戳。
我不知道格式是什么样的。读取数据时有什么方法可以保留原始格式吗?
简短的回答是:我 99% 确定你不能(即使我只能用谷歌搜索“熊猫”)
稍长一点的答案是您的问题没有意义:所有数据都作为二进制值存储在系统内部。除了“存储格式”(适用于数据库服务器)之外,您还应该关注“显示格式”,它主要适用于您选择查看数据的客户端软件。请对于所有数据类型都是如此,包括日期,但整数、浮点数、字符串都具有与“显示格式”非常不同的“存储格式”。
此外,SAS、R、python(或 Pandas)等所有软件系统也能够将数据存储在文件中,并且每种数据类型的“存储格式”理论上可能与数据库中的相同,但预计会有所不同。根据数据的来源,客户端甚至可能对相同的数据类型有不同的“显示格式”(即使我认为这是不好的行为)
你能理解这个吗?
让我们试试:strftime('%m/%d/%Y')函数。
import pandas as pd
df = pd.DataFrame({'test': {0: '23/07/2020', 1: '23/07/2020'}})
print (df)
test
0 23/07/2020
1 23/07/2020
df['test'] = pd.to_datetime(df.test)
print (df)
test
0 23-07-2020
1 23-07-2020
df['test1'] = df['test'].dt.strftime('%m/%d/%Y')
print (df)
test test1
0 23-07-2020 23/07/2020
1 23-07-2020 23/07/2020