2

pyodbc を使用して SQL Server からデータをクエリし、それに対して .NET で操作を実行していpandasます。私が気付いたのは、一部の計算された数値列が decimal.Decimal として返され、その他は float として返されることです。算術オペランドは 2 つの異なる型の結果に対して実行できないため、これは問題があります。

それを解決する最善の方法は何ですか?decimal.Decimal を float に強制する pydobc 設定はありますか? 変換は自分で行うべきですか?他の何か?

4

2 に答える 2

2

ResultsODBC と Python のデータ型間の変換の詳細を示す変換表 (Python 2.x および 3.x の見出しの下) を次に示します。

@AaronCASTの回答に記載されている結果、またはデータベースのソースデータ型を変更します。

もう少し詳細 (特定の列のデータ型、サンプル データ、データベース変更の柔軟性) があれば、どのオプションが最適かを判断するのに役立ちます。

于 2012-06-18T12:34:23.700 に答える
1

クエリを作成した場合はCAST、データ型を制御するためだけに使用することをお勧めします。私は常に SQL Server で計算列を明示的にキャストしています

SELECT CAST(ColumnA/ColumnB AS FLOAT) AS 'FieldA' FROM Table
于 2012-06-13T15:42:31.923 に答える