Pandas to_string()

The to_string() method in Pandas is used to convert a DataFrame or Series into a string representation.

Example

import pandas as pd

# sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}

df = pd.DataFrame(data)

# convert the DataFrame to a string
df_str = df.to_string()

print(df_str)
print(type(df_str))

'''
Output

      Name  Age
0    Alice   25
1      Bob   30
2  Charlie   35
<class 'str'>
'''

to_string() Syntax

The syntax of the to_string() method in Pandas is:

df.to_string(buf=None, columns=None, col_space=None, header=True, index=True, na_rep='NaN', float_format=None, max_rows=None, max_cols=None, line_width=None, max_colwidth=None, encoding=None)

to_string() Arguments

The to_string() method has the following arguments:

  • buf (optional): a writable buffer or file-like object where the output is written
  • columns (optional): a list of column labels to include in the output
  • col_space (optional): the minimum width for each column
  • header (optional): whether to include the column names as the first row in the output
  • index (optional): whether to include the row index as the first column in the output
  • na_rep (optional): The string representation to use for missing (NaN) values
  • float_format (optional): a formatting string for floating-point numbers
  • max_rows (optional): the maximum number of rows to display
  • max_cols (optional): the maximum number of columns to display
  • line_width (optional): the maximum width of the lines in output text
  • max_colwidth (optional): the maximum width of columns
  • encoding (optional): the character encoding to use for the output file.

to_string() Return Value

The to_string() method returns a string representation of the DataFrame if buf is not provided. If buf is specified (a writable buffer or file-like object), the result is written to that buffer, and the method returns None.


Example 1: Basic Conversion to String

import pandas as pd

# sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}

df = pd.DataFrame(data)

# convert the DataFrame to a string
df_str = df.to_string()

print(df_str)
print(type(df_str))

Output

      Name  Age
0    Alice   25
1      Bob   30
2  Charlie   35
<class 'str'>

In this example, we used to_string() to convert a simple DataFrame into a string representation.


Example 2: Customize String Output

import pandas as pd

# Sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}

df = pd.DataFrame(data)

# customize the output # exclude index and header, set column width df_str = df.to_string(index=False, header=False, col_space=12)
print(df_str)

Output

 Alice           25
 Bob           30
Charlie           35

In this example, we customized the output by specifying options such as excluding the index, excluding the header and setting column width.


Example 3: Handling Large Data

import pandas as pd
import numpy as np

# create a large DataFrame with random data
data = {'A': np.random.rand(1000),
        'B': np.random.rand(1000)}

df = pd.DataFrame(data)

# convert the DataFrame to a string # with a limited number of rows and columns df_str = df.head(10).to_string(max_rows=10, max_cols=5)
print(df_str)

Output

          A         B
0  0.912769  0.987977
1  0.116491  0.742209
2  0.099608  0.205752
3  0.266780  0.623442
4  0.456489  0.788152
5  0.688733  0.877621
6  0.957630  0.711076
7  0.850300  0.978556
8  0.223032  0.890999
9  0.481130  0.395231

In this example, we generated a large DataFrame with random values but converted only the specified number of rows and columns to string using max_rows and max_cols arguments.


Example 4: Saving String to a File

The string can be saved to a file using the buf argument.

Let's look at an example.

import pandas as pd
import io

# sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}

df = pd.DataFrame(data)

# create a writable buffer buffer = io.StringIO() # write the dataframe to buffer df.to_string(buf=buffer, index=False) # save the content of the buffer to a text file with open('output.txt', 'w') as file: file.write(buffer.getvalue()) # close the buffer buffer.close()

Here, we used the io module to create a buffer and wrote the DataFrame to the buffer. Then we saved the content of the buffer to a file called output.txt.