def to_csv(self, path_or_buf=None, sep="<STR_LIT:U+002C>", na_rep='<STR_LIT>', float_format=None,<EOL>columns=None, header=True, index=True, index_label=None,<EOL>mode='<STR_LIT:w>', encoding=None, compression='<STR_LIT>', quoting=None,<EOL>quotechar='<STR_LIT:">', line_terminator=None, chunksize=None,<EOL>tupleize_cols=None, date_format=None, doublequote=True,<EOL>escapechar=None, decimal='<STR_LIT:.>'):
df = self if isinstance(self, ABCDataFrame) else self.to_frame()<EOL>if tupleize_cols is not None:<EOL><INDENT>warnings.warn("<STR_LIT>"<EOL>"<STR_LIT>",<EOL>FutureWarning, stacklevel=<NUM_LIT:2>)<EOL><DEDENT>else:<EOL><INDENT>tupleize_cols = False<EOL><DEDENT>from pandas.io.formats.csvs import CSVFormatter<EOL>formatter = CSVFormatter(df, path_or_buf,<EOL>line_terminator=line_terminator, sep=sep,<EOL>encoding=encoding,<EOL>compression=compression, quoting=quoting,<EOL>na_rep=na_rep, float_format=float_format,<EOL>cols=columns, header=header, index=index,<EOL>index_label=index_label, mode=mode,<EOL>chunksize=chunksize, quotechar=quotechar,<EOL>tupleize_cols=tupleize_cols,<EOL>date_format=date_format,<EOL>doublequote=doublequote,<EOL>escapechar=escapechar, decimal=decimal)<EOL>formatter.save()<EOL>if path_or_buf is None:<EOL><INDENT>return formatter.path_or_buf.getvalue()<EOL><DEDENT>
r"""
        Write object to a comma-separated values (csv) file.

        .. versionchanged:: 0.24.0
            The order of arguments for Series was changed.

        Parameters
        ----------
        path_or_buf : str or file handle, default None
            File path or object, if None is provided the result is returned as
            a string.  If a file object is passed it should be opened with
            `newline=''`, disabling universal newlines.

            .. versionchanged:: 0.24.0

               Was previously named "path" for Series.

        sep : str, default ','
            String of length 1. Field delimiter for the output file.
        na_rep : str, default ''
            Missing data representation.
        float_format : str, default None
            Format string for floating point numbers.
        columns : sequence, optional
            Columns to write.
        header : bool or list of str, default True
            Write out the column names. If a list of strings is given it is
            assumed to be aliases for the column names.

            .. versionchanged:: 0.24.0

               Previously defaulted to False for Series.

        index : bool, default True
            Write row names (index).
        index_label : str or sequence, or False, default None
            Column label for index column(s) if desired. If None is given, and
            `header` and `index` are True, then the index names are used. A
            sequence should be given if the object uses MultiIndex. If
            False do not print fields for index names. Use index_label=False
            for easier importing in R.
        mode : str
            Python write mode, default 'w'.
        encoding : str, optional
            A string representing the encoding to use in the output file,
            defaults to 'utf-8'.
        compression : str, default 'infer'
            Compression mode among the following possible values: {'infer',
            'gzip', 'bz2', 'zip', 'xz', None}. If 'infer' and `path_or_buf`
            is path-like, then detect compression from the following
            extensions: '.gz', '.bz2', '.zip' or '.xz'. (otherwise no
            compression).

            .. versionchanged:: 0.24.0

               'infer' option added and set to default.

        quoting : optional constant from csv module
            Defaults to csv.QUOTE_MINIMAL. If you have set a `float_format`
            then floats are converted to strings and thus csv.QUOTE_NONNUMERIC
            will treat them as non-numeric.
        quotechar : str, default '\"'
            String of length 1. Character used to quote fields.
        line_terminator : str, optional
            The newline character or character sequence to use in the output
            file. Defaults to `os.linesep`, which depends on the OS in which
            this method is called ('\n' for linux, '\r\n' for Windows, i.e.).

            .. versionchanged:: 0.24.0
        chunksize : int or None
            Rows to write at a time.
        tupleize_cols : bool, default False
            Write MultiIndex columns as a list of tuples (if True) or in
            the new, expanded format, where each MultiIndex column is a row
            in the CSV (if False).

            .. deprecated:: 0.21.0
               This argument will be removed and will always write each row
               of the multi-index as a separate row in the CSV file.
        date_format : str, default None
            Format string for datetime objects.
        doublequote : bool, default True
            Control quoting of `quotechar` inside a field.
        escapechar : str, default None
            String of length 1. Character used to escape `sep` and `quotechar`
            when appropriate.
        decimal : str, default '.'
            Character recognized as decimal separator. E.g. use ',' for
            European data.

        Returns
        -------
        None or str
            If path_or_buf is None, returns the resulting csv format as a
            string. Otherwise returns None.

        See Also
        --------
        read_csv : Load a CSV file into a DataFrame.
        to_excel : Write DataFrame to an Excel file.

        Examples
        --------
        >>> df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
        ...                    'mask': ['red', 'purple'],
        ...                    'weapon': ['sai', 'bo staff']})
        >>> df.to_csv(index=False)
        'name,mask,weapon\nRaphael,red,sai\nDonatello,purple,bo staff\n'