pandas_gbq上传dataframe错误:读取数据时出错,错误信息:CSV处理遇到太多错误,放弃

问题描述 投票:0回答:1

我有一个数据框想要上传到 BigQuery。数据框有 5 列,具有以下类型,如下所示:

name            object
type            object
population       int32
geometry      geometry
geojson         object
dtype: object

enter image description here

name
是字符串形式的区域名称,
type
是其类型(省、城市等)也是字符串。
population
是地区人口。
geometry
是一个形状优美的多边形,最后,
geojson
是使用
df['geojson'] = df['geometry'].apply(lambda x: json.dumps(shapely.geometry.mapping(x)))

转换为 geojson 的多边形

确切的错误显示为

pandas_gbq.gbq.GenericGBQException: Reason: 400 Error while reading data, error message: CSV processing encountered too many errors, giving up. Rows: 855402; errors: 8; max bad: 0; error percent: 0
,因此看起来第 855402 行是有问题的行。

我做的第一件事是检查该行是否具有相同的数据类型,确实如此

>>> df.iloc[855402:855403].dtypes
name            object
type            object
population       int32
geometry      geometry
geojson         object
dtype: object

我还检查了几何文件是否有效并且也是

>>> df.iloc[855402]['geometry'].is_valid
True

我需要做什么才能将此数据帧上传到 BigQuery?

python pandas google-bigquery
1个回答
0
投票

正如@user16164298提到的,怀疑某些值中含有逗号。因此,当 BigQuery 解析 CSV 时,它会将逗号视为分隔符,并且列数将为奇数。您可以参阅 BigQuery 文档了解更多详细信息。

将答案发布为社区 wiki,以造福于将来可能遇到此用例的社区。

请随意编辑此答案以获取更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.