是否可以从python中的pandas DataFrame获取sql列元数据?

时间:2019-04-26 08:45:49

标签: python sql dataframe metadata

我用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

enter image description here

我想知道DataFrame是否还包含有关该表的其他元数据,例如如果列是可空的,则该列的默认值以及该列是否为主键?

我希望有一些类似的方法

dataFrame.isNullable('columnName')

但找不到此类方法。

如果元数据不包含在DataFrame中,我将不得不使用额外的查询来检索该数据,例如

PRAGMA table_info('my_table')

这将使列

cid, name, type, notnull, dflt_value, pk

但是,我想避免该额外的查询。特别是如果我的原始查询未包含所有列,或者如果它定义了一些额外的列,则查找对应的元数据可能会变得很复杂。

=>如果DataFrame已经包含所需的元数据,请让我知道如何访问它。

(在Java中,我将使用ResultSetMetaData metaData = resultSet.getMetaData();访问元数据)

0 个答案:

没有答案