

SQLのデータをDataframeとして読み込むときにエラーが発生するため、質問しております。  
具体的には以下のコードを走らせると、最後のコードを実行したときに、"TypeError: must be real number, not
str"というエラーが発生します。  
公式ドキュメント等で確認しても解決に至らず、みなさまのお知恵をお借りできると幸いです。  
ご不明点などありましたらその旨お知らせください。  
よろしくお願いいたします。

[code]

    # データベースから必要なデータを抽出する
    engine = create_engine('sqlite:///fundamental_database.sqlite3')
    Base = declarative_base()
    
    #model class
    class FundamentalData(Base):
        __tablename__ = 'FundamentalData'
        
        id = Column(Integer, primary_key=True, autoincrement=True)
        company_name = Column(String(30))
        sec_code = Column(Integer)
        para_name = Column(String(30))
        Q_n = Column(String(30))
        Date = Column(Numeric)
        value = Column(Numeric)
        type = Column(String(30))
    
    # データベースに接続するためのセッションを準備
    Session = sqlalchemy.orm.sessionmaker(bind = engine)
    ses = Session()
    
    Company_Funda_Data = ses.query(FundamentalData).filter(FundamentalData.company_name == 'トヨタ')
    
    df = pd.read_sql_query(Company_Funda_Data.statement, engine)
    
[/code]


CC BY-SA 4.0
2022-01-04T03:13:35.823
85476
2023-07-19T11:17:45.427
2022-01-04T03:30:57.587
44061
44061
question
python sql sqlalchemy
SQLからのデータ読み取り時のエラー


これは、数値型の列には、DataFrame に読み取られるときに文字列が含まれるためです。

このエラーを解決するには、列のデータ型をデータベースから取得した結果に正しく変換する必要があります。

次のコードを試してください。

[code]

    df['Date'] = df['Date'].astype(float)
    df['value'] = df['value'].astype(float)
    
[/code]

これで問題は解決しますか?


CC BY-SA 4.0
2023-07-19T11:17:45.427
95696
2023-07-19T11:17:45.427
58577
85476
answer