【问题标题】:Pandas Datetime Customization Error: 'Series Object is not Callable'Pandas 日期时间自定义错误:“系列对象不可调用”
【发布时间】:2017-07-14 07:47:54
【问题描述】:

我有一个数据框,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 指示,这导致了错误?

【问题讨论】:

  • 如果您在读取自身的同时解析日期列,则可以完全避免额外的步骤。 pd.read_csv(file location, parse_dates=['Date'])

标签: python pandas dataframe time-series


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    languitar 的答案就在这里,pandas 可以自动猜出多种格式:

     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.read_clipboard(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() 将您的文件读取到 DataFrame(不需要pd.DataFrame(Df)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 2023-01-17
      • 2017-01-03
      • 2021-05-21
      • 2012-08-24
      • 2021-12-29
      • 2017-09-15
      相关资源
      最近更新 更多