def test_column_info(self): s = r"#COLUMNINFO= 1, m, Sondeerlengte, 1" v = utils.parse_column_info(s, 1, MAP_QUANTITY_NUMBER_COLUMN_NAME_CPT) self.assertEqual(v, "penetration_length") h = {"COLUMNINFO": [["1", "m", "Sondeerlengte", "1"]]} v = utils.parse_column_info(h, 1, MAP_QUANTITY_NUMBER_COLUMN_NAME_CPT) self.assertEqual(v, "penetration_length")
def parse_data_column_info(header_s, data_s, sep, columns_number, columns_info=None): if columns_info is None: col = list( map( lambda x: utils.parse_column_info( header_s, x, MAP_QUANTITY_NUMBER_COLUMN_NAME_BORE), range(1, columns_number + 1), )) return pd.read_csv(io.StringIO(data_s), sep=sep, names=col, index_col=False, usecols=col) else: return pd.read_csv( io.StringIO(data_s), sep=sep, names=columns_info, index_col=False, usecols=columns_info, )
def parse_data_column_info(headers, data_s, sep, columns_number, columns_info=None): if columns_info is None: col = list( map( lambda x: utils.parse_column_info( headers, x, MAP_QUANTITY_NUMBER_COLUMN_NAME_BORE), range(1, columns_number + 1), )) return pl.read_csv( io.StringIO(data_s), sep=sep, new_columns=col, has_headers=False, projection=list(range(0, len(col))), ) else: return pl.read_csv( io.StringIO(data_s), sep=sep, new_columns=columns_info, has_headers=False, )
def determine_column_names(headers, columns_number=None, columns_info=None): if columns_number is None and columns_info is None: columns_number = utils.parse_columns_number(headers) if columns_number is not None: columns_info = [] for column_number in range(1, columns_number + 1): columns_info.append( utils.parse_column_info( headers, column_number, MAP_QUANTITY_NUMBER_COLUMN_NAME_CPT)) return columns_info
def parse_data(header_s, data_s, columns_number=None, columns_info=None): df = {} if columns_number is None and columns_info is None: columns_number = utils.parse_columns_number(header_s) if columns_number is not None: columns_info = [] for column_number in range(1, columns_number + 1): column_info = utils.parse_column_info( header_s, column_number, MAP_QUANTITY_NUMBER_COLUMN_NAME_CPT) columns_info.append(column_info) df = pd.read_csv(io.StringIO(data_s.replace('!', '')), sep=r';|\s+|,|\|\s*', names=columns_info, index_col=False, engine='python') return df
def parse_data_column_info(header_s, data_s, sep, columns_number, columns_info=None): if columns_info is None: columns_info = [] for column_number in range(1, columns_number + 1): column_info = utils.parse_column_info( header_s, column_number, MAP_QUANTITY_NUMBER_COLUMN_NAME_BORE) columns_info.append(column_info) df_column_info = pd.read_csv(io.StringIO(data_s), sep=sep, names=columns_info, index_col=False, usecols=columns_info) return df_column_info
def parse_data(header_s, data_s, columns_number=None, columns_info=None): if columns_number is None and columns_info is None: columns_number = utils.parse_columns_number(header_s) if columns_number is not None: columns_info = [] for column_number in range(1, columns_number + 1): column_info = utils.parse_column_info( header_s, column_number, MAP_QUANTITY_NUMBER_COLUMN_NAME_CPT ) columns_info.append(column_info) new_data = data_s.replace("!", "") separator = utils.find_separator(header_s) return pd.read_csv( io.StringIO(new_data), sep=separator, names=columns_info, index_col=False, engine="python", )
def test_column_info(self): s = r'#COLUMNINFO= 1, m, Sondeerlengte, 1' v = utils.parse_column_info(s, 1, MAP_QUANTITY_NUMBER_COLUMN_NAME_CPT) self.assertEqual(v, "penetration_length")