避免此错误的最佳方法是什么?
DataError:整数的输入语法无效:" 669068424.0"背景: COPY sequence_raw,第2行,列ID:" 669068424.0"
我使用pgadmin创建了一个表,它指定了每列的数据类型。然后我用pandas读取数据并进行一些处理。我可以明确地提供一个列列表,并说它们是.astype(int),但这是必要的吗?
我理解整数之后存在.0的原因是因为数据中有NaN,所以它们变成浮点数而不是整数。解决这个问题的最佳方法是什么?我在预发布的pandas 0.19上看到有更好的处理稀疏数据,是否有机会覆盖?
def process_file(conn, table_name, file_object):
fake_conn = pg_engine.raw_connection()
fake_cur = fake_conn.cursor()
fake_cur.copy_expert(sql=to_sql % table_name, file=file_object)
fake_conn.commit()
fake_cur.close()
df = pd.read_sql_query(sql=query.format(**params), con=engine)
df.to_csv('../raw/temp_sequence.csv', index=False)
df = open('../raw/temp_sequence.csv')
process_file(conn=pg_engine, table_name='sequence_raw', file_object=df)
答案 0 :(得分:1)
您可以使用float_format
的{{1}}参数指定CSV中浮动的格式:
to_csv