在转换DataFrame类型到Arrow类型的过程中,Python中的一些数据类型无法被Arrow识别。因此,需要进行显式转换。下面是一个示例代码:
import pyarrow as pa
import pandas as pd
# 创建一个数据帧
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4.0, 5.0, 6.0]})
# 将pandas数据帧转换为pyarrow表格
table = pa.Table.from_pandas(df)
# 如果需要使用Arrow数据类型中未提供的数据类型,需进行显式转换
df['c'] = pd.Timestamp('20190101')
df['d'] = pd.Categorical(['foo', 'bar', 'baz'])
# 显式将Python时间戳类型和分类类型转换为Arrow类型
c = pa.timestamp('ns')
d = pa.dictionary(pa.int32(), pa.string())
# 重新转换数据帧到Arrow类型
schema = pa.schema([
pa.field('a', pa.int64()),
pa.field('b', pa.float64()),
pa.field('c', c),
pa.field('d', d)
])
table = pa.Table.from_pandas(df, schema=schema)
上一篇:ArrowInvalid:Column4namedinput_idsexpectedlength1000butgotlength328
下一篇:ArrowInvalid:无法将<POINT(2660004016000)>转换为类型Point:在推断Arrow数据类型时没有识别Python值类型