python如何从csv文件更改时间格式

python如何从csv文件更改时间格式,python,dataframe,time,Python,Dataframe,Time,使用pd.read\u csv()后,我得到以下数据。但在第一列中,时间格式是错误的。你能告诉我怎么改正吗?谢谢 数据如下所示,第一列应为2017/4/10 9:25:00,而不是42835.39236 datetime open high low close 0 42835.39236 20.72 20.72 20.72 20.72 1 42835.39583 20.72 20.72 20.67 20.67 2 42835.39653 20.6

使用
pd.read\u csv()
后,我得到以下数据。但在第一列中,时间格式是错误的。你能告诉我怎么改正吗?谢谢 数据如下所示,第一列应为2017/4/10 9:25:00,而不是42835.39236

     datetime   open   high    low  close
0  42835.39236  20.72  20.72  20.72  20.72
1  42835.39583  20.72  20.72  20.67  20.67
2  42835.39653  20.66  20.67  20.62  20.63
3  42835.39722  20.63  20.65  20.59  20.59
4  42835.39792  20.59  20.59  20.52  20.52

只需使用
pd.to\u datetime

In [741]: df
Out[741]: 
          date
0  42835.39236

In [742]: df['date'] = df['date'].apply(pd.to_datetime)

In [743]: df
Out[743]: 
                           date
0 1970-01-01 00:00:00.000042835

Pandas会将其转换为datetime。

要获得正确的日期,请使用:

import datetime as dt

df['datetime'] = pd.TimedeltaIndex(df['datetime'], unit='d') + dt.datetime(1899, 12, 30)
这将产生:

                 datetime   open   high    low  close
0 2017-04-10 09:24:59.904  20.72  20.72  20.72  20.72
1 2017-04-10 09:29:59.712  20.72  20.72  20.67  20.67
2 2017-04-10 09:31:00.192  20.66  20.67  20.62  20.63
3 2017-04-10 09:31:59.808  20.63  20.65  20.59  20.59
4 2017-04-10 09:33:00.288  20.59  20.59  20.52  20.52
编辑

要将
datetime
分为
date
time
使用:

df['date'] = df['datetime'].dt.date
df['time'] = df['datetime'].dt.ceil('min').dt.time
df
#                 datetime   open   high    low  close        date      time
#0 2017-04-10 09:24:59.904  20.72  20.72  20.72  20.72  2017-04-10  09:25:00
#1 2017-04-10 09:29:59.712  20.72  20.72  20.67  20.67  2017-04-10  09:30:00
#2 2017-04-10 09:31:00.192  20.66  20.67  20.62  20.63  2017-04-10  09:32:00
#3 2017-04-10 09:31:59.808  20.63  20.65  20.59  20.59  2017-04-10  09:32:00
#4 2017-04-10 09:33:00.288  20.59  20.59  20.52  20.52  2017-04-10  09:34:00
试试这个:

tt = pd.read_csv('aa.csv', parse_dates=True)

print(tt)
它将打印如下/按照预期,对不起,我是这个stackoverflow的新手,但这个答案有效

datetime        open       high       low       close

9:25:00 AM      20.72      20.72      20.72      20.72

9:30:00 AM      20.72      20.72      20.67      20.67

9:31:00 AM      20.66      20.67      20.62      20.63

9:32:00 AM      20.63      20.65      20.59      20.59

9:33:00 AM      20.59      20.59      20.52      20.52

输入是什么样子的?您是否将任何参数传递给pd.read_csv()?它看起来像是相对时间,不是吗?这是正确的。我还想问一下如何将第一列拆分为两部分。就像第一行是“2017-04-10 09:24:59.904”,我想得到两列:2017-04-10和09:25:00。谢谢@子排,明白了。最后一个问题是时间太长了。我怎样才能把时间改成正常的方式呢。例如,09:24:59.904000改为09:25:00@齐帕
datetime        open       high       low       close

9:25:00 AM      20.72      20.72      20.72      20.72

9:30:00 AM      20.72      20.72      20.67      20.67

9:31:00 AM      20.66      20.67      20.62      20.63

9:32:00 AM      20.63      20.65      20.59      20.59

9:33:00 AM      20.59      20.59      20.52      20.52