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

在python中是否可以从pandas DataFrame获取sql列元数据?,python,sql,dataframe,metadata,Python,Sql,Dataframe,Metadata,我用python将一些数据库表读取到一个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是否还包含关于表的更多元

我用python将一些数据库表读取到一个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是否还包含关于表的更多元数据,例如,如果一个列可为null,该列的默认值,以及该列是否是主键

我希望有一些类似的方法

dataFrame.isNullable('columnName')
但是找不到这样的方法

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

PRAGMA table_info('my_table')
这将给列

cid, name, type, notnull, dflt_value, pk
然而,我想避免这个额外的疑问。特别是如果我的原始查询不包含所有列,或者如果它定义了一些额外的列,那么查找相应的元数据可能会变得复杂

=>如果数据帧已经包含所需的元数据,请告诉我如何访问它


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

由于pandas的目的是简化数据集并从大量数据源对数据集执行批量更改,因此它基本上为数据分析和数据科学操作提供了扩展。对于您的案例,您可以从“select*from sqlite_master”从sqlite获取元数据。由于pandas的目的是简化并从大量数据源对数据集执行批量更改,因此它基本上为数据分析和数据科学操作提供了扩展。对于您的案例,您可以从“select*from sqlite_master”从sqlite获取元数据。