Read a TSV File with Pandas?

Pandas is a Python library used for data analysis. It includes a variety of powerful features, such as the ability to read and write TSV (tab-separated values) files. TSV files are a type of data storage that divides data into columns using tabs. Using the read_csv() function, we can easily read TSV files into DataFrames within Pandas. This makes it easier to analyze the data and to use it in other applications.


To read a TSV file with pandas in Python, you can use the following basic syntax:

df = pd.read_csv("data.txt", sep="t")

This tutorial provides several examples of how to use this function in practice.

Read a TSV File with a Header

Suppose we have the following TSV file called data.txt with a header:

To read this file into a pandas DataFrame, we can use the following syntax:

import pandas as pd

#read TSV file into pandas DataFrame
df = pd.read_csv("data.txt", sep="t")

#view DataFrame
print(df)

	column1	column2
0	1	4
1	3	4
2	2	5
3	7	9
4	9	1
5	6	3
6	5	7
7	8	8
8	3	1
9	4	9

We can print the class of the DataFrame and find the number of rows and columns using the following syntax:

#display class of DataFrame
print(type(df))

<class 'pandas.core.frame.DataFrame'>

#display number of rows and columns in DataFrame
df.shape

(10, 2)

We can see that df is a pandas DataFrame with 10 rows and 2 columns.

Read a TSV File with No Header

Suppose we have the following TSV file called data.txt with no headers:

To read this file into a pandas DataFrame, we can use the following syntax:

#read TSV file into pandas DataFrame
df = pd.read_csv("data.txt", sep="t", header=None)

#view DataFrame
print(df)

        0	1
0	1	4
1	3	4
2	2	5
3	7	9
4	9	1
5	6	3
6	5	7
7	8	8
8	3	1
9	4	9

Since the text file had no headers, pandas simply named the columns 0 and 1.

Read TSV File with No Header & Specify Column Names

If we’d like, we can assign column names while importing the text file by using the names argument:

#read TSV file into pandas DataFrame and specify column names
df = pd.read_csv("data.txt", sep="t", header=None, names=["A", "B"])

#display DataFrame
print(df)

	A	B
0	1	4
1	3	4
2	2	5
3	7	9
4	9	1
5	6	3
6	5	7
7	8	8
8	3	1
9	4	9

The following tutorials explain how to read other types of files with pandas:

How to Read CSV Files with Pandas
How to Read Excel Files with Pandas
How to Read a JSON File with Pandas

x