Let’s see how to Convert Text File to CSV using Python Pandas. Python will read data from a text file and will create a dataframe with rows equal to number of lines present in the text file and columns equal to the number of fields present in a single line. See below example for better understanding.
Dataframe created from upper text file will look as follows:
Note: The first column in dataframe is indexing which is by default when a text file is read.
Once the dataframe is created, we will store this dataframe into a CSV file format using Dataframe.to_csv() Method.
Syntax: Dataframe.to_csv(parameters)
Return: None
Let’s see examples:
Example 1:
Python3
# importing panda library import pandas as pd # readinag given csv file # and creating dataframe dataframe1 = pd.read_csv( "Lazyroar.txt" ) # storing this dataframe in a csv file dataframe1.to_csv( 'Lazyroar.csv' , index = None ) |
Output:
The text file read is same as above. After successful run of above code, a file named “Lazyroar.csv” will be created in the same directory.
Example 2: Suppose the column heading are not given and the text file looks like:
Then while writing the code you can specify headers.
Python3
# importing pandas library import pandas as pd # reading given csv file # and creating dataframe websites = pd.read_csv( "Lazyroar.txt" ,header = None ) # adding column headings websites.columns = [ 'Name' , 'Type' , 'Website' ] # store dataframe into csv file websites.to_csv( 'Lazyroar.csv' , index = None ) |
Output:
We see that headers have been added successfully and file has been converted from ‘.txt’ format to ‘.csv’ format.
Example 3: In this example, the fields in the text file are separated by user defined delimiter “/”.
Python3
# importing pandas library import pandas as pd # reading the given csv file # and creating dataframe account = pd.read_csv( "Lazyroar.txt" , delimiter = '/' ) # store dataframe into csv file account.to_csv( 'Lazyroar.csv' , index = None ) |
Output:
While reading data we specify that data should be tokenized using specified delimiter. In this case ‘/’.