def _parse_table_cell(col, x):
    """
    Parse 1 table cell. If col is 0, left margin - 1 should be kept for hierarchical data.
    :param col: col index
    :param x: data in cell
    :return: int, float or str
    """
    try:
        return int(x)
    except ValueError:
        pass
    try:
        return float(x)
    except ValueError:
        pass
    if col != 0:
        return x.strip()
    assert x[0] == ' '
    return x[1:].rstrip()