

PythonにてOHLC形式でリサンプリングしたく、以下のコードを記述しましたが、AttributeErrorとなってしまいます。  
何が悪いかわかる方はいらっしゃいますでしょうか。

なお実行環境はAzureMLのPythonScriptです。

ソース：

[code]

    import pandas as pd
    
    dataframe1['Time'] = pd.to_datetime(dataframe1['Time'], unit='s')
    dataframe1.index = dataframe1['Time']
    x = dataframe1.resample('H').ohlc()
    
[/code]

dataframe1：

[code]

               Time     Open     High      Low    Close 
    20170102 020100  116.875  116.915  116.875  116.901 
    20170102 020200  116.901  116.901  116.901  116.901 
    20170102 020300  116.901  116.906  116.897  116.900 
    
[/code]

エラーメッセージ：

[code]

    Error 0085: The following error occurred during script evaluation, please view the output log for more information:
    ---------- Start of error message from Python interpreter ----------
    Caught exception while executing function: Traceback (most recent call last):
      File "C:\server\invokepy.py", line 199, in batch
        odfs = mod.azureml_main(*idfs)
      File "C:\temp\16dad51ce7994c25aa02a0a388e26709.py", line 44, in azureml_main
        x = dataframe1.resample('H').ohlc()
      File "C:\pyhome\lib\site-packages\pandas\core\generic.py", line 1843, in __getattr__
        (type(self).__name__, name))
    AttributeError: 'DataFrame' object has no attribute 'ohlc'
    Process returned with non-zero exit code 1
    
    ---------- End of error message from Python  interpreter  ----------
    
[/code]

以上です。  
よろしくお願いします。

### 7/17追記

magichanさんご回答ありがとうございます。  
おっしゃる通り、すでにOHLC形式になっていますね...  
目的の説明が間違っておりました。正しくは「OHLC形式のデータをリサンプリングしたい」です。  
教えていただいたソースを以下のように試してみましたが、同じようなエラーが出てしまいます。

[code]

    import pandas as pd
    
    dataframe1['Time'] = pd.to_datetime(dataframe1['Time'], unit='s')
    dataframe1.index = dataframe1['Time']
    x = dataframe1.resample('H').ohlc()
    
[/code]

[code]

    Error 0085: The following error occurred during script evaluation, please view the output log for more information:
    ---------- Start of error message from Python interpreter ----------
    Caught exception while executing function: Traceback (most recent call last):
      File "C:\server\invokepy.py", line 199, in batch
        odfs = mod.azureml_main(*idfs)
      File "C:\temp\4cf09401e1994ec1a2112e2d81ef4ff3.py", line 49, in azureml_main
        x = dataframe1.resample('H').agg({
      File "C:\pyhome\lib\site-packages\pandas\core\generic.py", line 1843, in __getattr__
        (type(self).__name__, name))
    AttributeError: 'DataFrame' object has no attribute 'agg'
    Process returned with non-zero exit code 1
    
[/code]

もしかして文法うんぬんというより実行環境が悪いのでしょうか...


CC BY-SA 4.0
2018-07-11T12:47:55.490
45518
2019-03-22T04:57:04.977
2018-07-17T14:46:33.623
19110
29264
question
python pandas azure
resample('H').ohlc()でAttributeError


dataframe1は既に **OHLC形式** になっているように見えますが・・。

既に **OHLC形式** のデータを _Resample_ したいというのであれば、

[code]

    x = dataframe1.resample('H').agg({
        'Open': 'first',
        'High': 'max',
        'Low': 'min',
        'Close': 'last'})
    
[/code]

のようになるのではないでしょうか。

* * *

**【追記】**  
そのままで動作する動作サンプルコードをあげておきます。  
動作を確認してみてください。

[code]

    import pandas as pd
    import io
    
    data = """
    Time,Open,High,Low,Close
    20170102 020100,116.875,116.915,116.875,116.901
    20170102 020200,116.901,116.901,116.901,116.901
    20170102 020300,116.901,116.906,116.897,116.900
    """
    
    dataframe1 = pd.read_csv(io.StringIO(data), parse_dates=['Time'],　index_col='Time')
    res = dataframe1.resample('H').agg({
        'Open': 'first',
        'High': 'max',
        'Low': 'min',
        'Close': 'last'})
    
    print(res)
    #                         Low     High     Open  Close
    #Time
    #2017-01-02 02:00:00  116.875  116.915  116.875  116.9
    
[/code]


CC BY-SA 4.0
2018-07-12T01:45:34.437
45533
2018-07-18T02:18:19.647
2018-07-18T02:18:19.647
24801
24801
45518
answer