熊猫日期定制化错误:系列对象不可调用

2024-04-28 23:28:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,Df最初来自CSV文件:

     Ticker                    Date     Open     High      Low    Close  \
0     ES H7   10/18/2016 1:44:59 PM  2128.25  2128.50  2128.00  2128.00   
1     ES H7   10/18/2016 1:59:59 PM  2127.75  2129.25  2127.75  2128.75   
2     ES H7   10/18/2016 2:14:59 PM  2127.25  2127.25  2124.50  2125.75   
3     ES H7   10/18/2016 2:29:59 PM  2126.50  2126.50  2126.50  2126.50   
4     ES H7   10/18/2016 2:44:59 PM  2125.75  2126.75  2125.75  2126.50   
5     ES H7   10/18/2016 4:14:59 PM  2126.25  2126.25  2126.00  2126.00   
6     ES H7   10/18/2016 4:44:59 PM  2126.50  2126.50  2126.25  2126.25   
7     ES H7   10/18/2016 5:59:59 PM  2126.50  2126.50  2126.50  2126.50   
8     ES H7   10/18/2016 6:14:59 PM  2127.00  2127.00  2127.00  2127.00   
9     ES H7   10/18/2016 7:14:59 PM  2126.50  2127.75  2126.50  2127.75   

我正在尝试确保“日期”列设置为正确说明日期/时间:

Df = pd.read_csv(file location)
Df = pd.DataFrame(Df)
pd.to_datetime(Df.Date('%m%d%y %H:%M:%S'))

从其他文章来看,这看起来是正确的,但是我得到了日期时间行的错误:

Type Error: 'Series' object is not callable

也许我错过了AM/PM指示,这就是错误的原因?


Tags: 文件csv数据dfdatees错误时间
2条回答

Df.Date返回包含数据帧中日期的Series。不能用格式字符串调用它。我怀疑您想确保列的数据类型是datetime。这将适当地转换它:

In [4]: Df
Out[4]:
    Date  foo
0   9:40   42
1  13:30   13

In [5]: Df.Date = pd.to_datetime(Df.Date)

In [6]: Df
Out[6]:
                 Date  foo
0 2017-02-23 09:40:00   42
1 2017-02-23 13:30:00   13

Langitar的答案就在这里,熊猫可以自动猜测多种格式:

 pd.to_datetime(Df.Date)

如果需要指定格式,则需要精确地表示整行;您的案例:

pd.to_datetime(Df.Date, format='%m/%d/%Y %I:%M:%S %p')  
pd.to_datetime('10/18/2016 2:29:59 PM', format='%m/%d/%Y %I:%M:%S %p')  

(大Y、I、p和所有分离器) https://docs.python.org/3.4/library/datetime.html

作为礼貌,用一个简短的例子 pd.读取剪贴板(sep='\s\s+')

    Ticker             Date         Open
0   ES H7   10/18/2016 1:44:59 PM   2128.25
1   ES H7   10/18/2016 1:59:59 PM   2127.75

pd.read_csv()将文件读取到数据帧(不需要pd.DataFrame(Df)

相关问题 更多 >