我用python将一些数据库表读取到pandas DataFrame,并且能够检索列的类型:
import sqlite3
import pandas
with sqlite3.connect('d:\database.sqlite') as connection:
dataFrame = pandas.read_sql_query('SELECT * FROM my_table', connection)
dataFrame.dtypes
我想知道DataFrame是否还包含有关该表的其他元数据,例如如果列是可空的,则该列的默认值以及该列是否为主键?
我希望有一些类似的方法
dataFrame.isNullable('columnName')
但找不到此类方法。
如果元数据不包含在DataFrame中,我将不得不使用额外的查询来检索该数据,例如
PRAGMA table_info('my_table')
这将使列
cid, name, type, notnull, dflt_value, pk
但是,我想避免该额外的查询。特别是如果我的原始查询未包含所有列,或者如果它定义了一些额外的列,则查找对应的元数据可能会变得很复杂。
=>如果DataFrame已经包含所需的元数据,请让我知道如何访问它。
(在Java中,我将使用ResultSetMetaData metaData = resultSet.getMetaData();
访问元数据)