For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/

cerebro.run ValueError: invalid literal for int() with base 10



  • Hi. I'm Japanese boy.
    I will try hard to write in English.

    I am doing the Adding a Data Feed of quickstart using pandas.
    But When cerebro.run, an error of ValueError: invalid literal for int () is issued.

    Do you know what is wrong?

    0_1515231462244_image_1.png
    0_1515231473137_image_2.png
    0_1515231482827_image_3.png



  • Your datetime in the dataframe seems to be an index.

    From the docs (just checked)

     - The new parameters have the names of the regular fields in the DataSeries and follow these conventions
        - datetime (default: None)
           - None : datetime is the “index” in the Pandas Dataframe
    

    And you are providing a name for datetime. It might be that. Let it be None.



  • Thank you for your reply.

    I solved it by deleting this!
    datetime='datetime'



  • The error message invalid literal for int() with base 10 would seem to indicate that you are passing a string that's not an integer to the int() function . In other words it's either empty, or has a character in it other than a digit.

    You can solve this error by using Python isdigit() method to check whether the value is number or not. The returns True if all the characters are digits, otherwise False .

    if val.isdigit():
    

    The other way to overcome this issue is to wrap your code inside a Python try...except block to handle this error.

    Python2.x and Python3.x

    Sometimes the difference between Python2.x and Python3.x that leads to this ValueError: invalid literal for int() with base 10 .

    With Python2.x , int(str(3/2)) gives you "1". With Python3.x , the same gives you ("1.5"): ValueError: invalid literal for int() with base 10: "1.5".


Log in to reply
 

});