<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def column_of_data(path, start, column, end="-1", units=""):
 """This function extracts a column of data from a ProCoDA data file. Note: Column 0 is time. The first data column is column 1. :param path: The file path of the ProCoDA data file. If the file is in the working directory, then the file name is sufficient. :type path: string :param start: Index of first row of data to extract from the data file :type start: int :param end: Index of last row of data to extract from the data. Defaults to last row :type end: int, optional :param column: Index of the column that you want to extract OR name of the column header that you want to extract :type column: int or string :param units: The units you want to apply to the data, e.g. 'mg/L'. Defaults to "" (dimensionless) :type units: string, optional :return: Experimental data with the units applied. :rtype: numpy.array :Examples: .. code-block:: python data = column_of_data("Reactor_data.txt", 0, 1, -1, "mg/L") """

    if not isinstance(start, int):
        start = int(start)
    if not isinstance(end, int):
        end = int(end)

    df = pd.read_csv(path, delimiter='\t')
    if units == "":
        if isinstance(column, int):
            data = np.array(pd.to_numeric(df.iloc[start:end, column]))
        else:
            df[column][0:len(df)]
    else:
        if isinstance(column, int):
            data = np.array(pd.to_numeric(df.iloc[start:end, column]))*u(units)
        else:
            df[column][0:len(df)]*u(units)
    return data