cartoframes.columns module

class cartoframes.columns.Column(name, normalize=True, pgtype=None)

Bases: object

DATETIME_DTYPES = ['datetime64[D]', 'datetime64[ns]', 'datetime64[ns, UTC]']
MAX_COLLISION_LENGTH = 59
MAX_LENGTH = 63
RESERVED_COLUMN_NAMES = ['geom', 'the_geom', 'geometry', 'the_geom_webmercator', 'cartodb_id']
RESERVED_WORDS = ('ALL', 'ANALYSE', 'ANALYZE', 'AND', 'ANY', 'ARRAY', 'AS', 'ASC', 'ASYMMETRIC', 'AUTHORIZATION', 'BETWEEN', 'BINARY', 'BOTH', 'CASE', 'CAST', 'CHECK', 'COLLATE', 'COLUMN', 'CONSTRAINT', 'CREATE', 'CROSS', 'CURRENT_DATE', 'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'DEFAULT', 'DEFERRABLE', 'DESC', 'DISTINCT', 'DO', 'ELSE', 'END', 'EXCEPT', 'FALSE', 'FOR', 'FOREIGN', 'FREEZE', 'FROM', 'FULL', 'GRANT', 'GROUP', 'HAVING', 'ILIKE', 'IN', 'INITIALLY', 'INNER', 'INTERSECT', 'INTO', 'IS', 'ISNULL', 'JOIN', 'LEADING', 'LEFT', 'LIKE', 'LIMIT', 'LOCALTIME', 'LOCALTIMESTAMP', 'NATURAL', 'NEW', 'NOT', 'NOTNULL', 'NULL', 'OFF', 'OFFSET', 'OLD', 'ON', 'ONLY', 'OR', 'ORDER', 'OUTER', 'OVERLAPS', 'PLACING', 'PRIMARY', 'REFERENCES', 'RIGHT', 'SELECT', 'SESSION_USER', 'SIMILAR', 'SOME', 'SYMMETRIC', 'TABLE', 'THEN', 'TO', 'TRAILING', 'TRUE', 'UNION', 'UNIQUE', 'USER', 'USING', 'VERBOSE', 'WHEN', 'WHERE', 'XMIN', 'XMAX', 'FORMAT', 'CONTROLLER', 'ACTION')
SUPPORTED_GEOM_COL_NAMES = ['geom', 'the_geom', 'geometry']
static from_sql_api_fields(sql_api_fields)
normalize(forbidden_column_names=None)
cartoframes.columns.bool_columns_names(columns)
cartoframes.columns.date_columns_names(columns)
cartoframes.columns.dtypes(columns, exclude_dates=False, exclude_the_geom=False, exclude_bools=False)
cartoframes.columns.normalize_name(column_name)
cartoframes.columns.normalize_names(column_names)

Given an arbitrary column name, translate to a SQL-normalized column name a la CARTO’s Import API will translate to

Examples
  • ‘Field: 2’ -> ‘field_2’
  • ‘2 Items’ -> ‘_2_items’
  • ‘Unnamed: 0’ -> ‘unnamed_0’,
  • ‘201moore’ -> ‘_201moore’,
  • ‘201moore’ -> ‘_201moore_1’,
  • ‘Acadia 1.2.3’ -> ‘acadia_1_2_3’,
  • ‘old_soaker’ -> ‘old_soaker’,
  • ‘_testingTesting’ -> ‘_testingtesting’,
  • 1 -> ‘_1’,
  • 1.0 -> ‘_1_0’,
  • ‘public’ -> ‘public’,
  • ‘SELECT’ -> ‘_select’,
  • ‘à’ -> ‘a’,
  • ‘longcolumnshouldbesplittedsomehowanditellyouwhereitsgonnabesplittedrightnow’ -> ‘longcolumnshouldbesplittedsomehowanditellyouwhereitsgonnabespli’,
  • ‘longcolumnshouldbesplittedsomehowanditellyouwhereitsgonnabesplittedrightnow’ -> ‘longcolumnshouldbesplittedsomehowanditellyouwhereitsgonnabe_1’,
  • ‘all’ -> ‘_all’
Parameters:column_names (list) – List of column names that will be SQL normalized
Returns:List of SQL-normalized column names
Return type:list
cartoframes.columns.pg2dtypes(pgtype)

Returns equivalent dtype for input pgtype.