【发布时间】:2021-05-21 06:29:21
【问题描述】:
我正在尝试将 pandas DataFrame 加载到带有 float 列的 pyarrow Table 并且在 pyarrow Table 构建过程中遇到问题:ArrowTypeError: ('int or Decimal object expected, got float', 'Conversion failed for column float_column with type object')
要重现的代码:
import pandas as pd
import pyarrow as pa
from decimal import Decimal, Context
float_value = 1.2
print(type(float_value))
df = pd.DataFrame(data=[[float_value]], columns=["float_column"], dtype="object")
schema_dict = {"float_column":pa.decimal128(32, 6)}
schema = pa.schema(schema_dict)
table = pa.Table.from_pandas(df, schema)
DataFrame 本身来自pandas.read_sql_query 方法,数据库中的基础类型是十进制(32,6)。
问题是:如何在pandas DataFrame中指定SQL decimal(32,6)类型并将该DataFrame转成pyarrow Table?
【问题讨论】:
标签: python pandas dataframe pyarrow