【问题标题】:ValueError: cannot infer type for <class 'NoneType'> - Flask, sqliteValueError:无法推断 <class 'NoneType'> 的类型 - Flask,sqlite
【发布时间】:2020-02-19 23:34:03
【问题描述】:

我正在尝试将数据框上传到没有问题的 sqlite 数据库,除非我添加“季度”列。

df['quarters'] = pd.PeriodIndex(pd.df(empres_df.date), freq='Q')
df.to_sql("table_name", con, if_exists="append")

因为当我这样做时,它给了我这个错误:

Traceback (most recent call last):
  File "/opt/anaconda3/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/opt/anaconda3/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/opt/anaconda3/lib/python3.7/site-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/opt/anaconda3/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/opt/anaconda3/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/opt/anaconda3/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/mkhumtai/Desktop/IndividualProject/avian/app/views.py", line 145, in import_data
    empres_df.to_sql("empres", con, if_exists="append")
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 2712, in to_sql
    method=method,
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/io/sql.py", line 518, in to_sql
    method=method,
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/io/sql.py", line 1747, in to_sql
    dtype=dtype,
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/io/sql.py", line 1440, in __init__
    super().__init__(*args, **kwargs)
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/io/sql.py", line 619, in __init__
    self.table = self._create_table_setup()
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/io/sql.py", line 1476, in _create_table_setup
    column_names_and_types = self._get_column_names_and_types(self._sql_type_name)
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/io/sql.py", line 860, in _get_column_names_and_types
    for i in range(len(self.frame.columns))
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/io/sql.py", line 860, in <listcomp>
    for i in range(len(self.frame.columns))
  File "/opt/anaconda3/lib/python3.7/site-packages/pandas/io/sql.py", line 1532, in _sql_type_name
    col_type = lib.infer_dtype(col, skipna=True)
  File "pandas/_libs/lib.pyx", line 1246, in pandas._libs.lib.infer_dtype
ValueError: cannot infer type for <class 'NoneType'>

只要我不将该列包含到数据库中,将“季度”列添加到数据框本身就不会出错。

我该如何解决这个问题?

【问题讨论】:

  • 有问题的列包含什么?

标签: python pandas sqlite flask


【解决方案1】:

只是想更新,

我通过添加解决了这个问题

df['quarters'] = pd.PeriodIndex(pd.df(empres_df.date), freq='Q').astype(str)

似乎数据库无法识别列类型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2018-02-25
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多