How to Read a TSV File with Pandas (Including Examples)


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

Additional Resources

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

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

Leave a Reply

Your email address will not be published.