Jean
Jean

Reputation: 1857

How to read a file with a semi colon separator in pandas

I a importing a .csv file in python with pandas.

Here is the file format from the .csv :

a1;b1;c1;d1;e1;...
a2;b2;c2;d2;e2;...   
.....

here is how get it :

from pandas import *
csv_path = "C:...."
data = read_csv(csv_path)

Now when I print the file I get that :

0  a1;b1;c1;d1;e1;...
1  a2;b2;c2;d2;e2;...   

And so on... So I need help to read the file and split the values in columns, with the semi color character ;.

Upvotes: 56

Views: 114462

Answers (2)

B Troy
B Troy

Reputation: 181

In response to Morris' question above: "Is there a way to programatically tell if a CSV is separated by , or ; ?"

This will tell you:

import pandas as pd

df_comma = pd.read_csv(your_csv_file_path, nrows=1,sep=",")
df_semi = pd.read_csv(your_csv_file_path, nrows=1, sep=";")
if df_comma.shape[1]>df_semi.shape[1]:
    print("comma delimited")
else:
    print("semicolon delimited")

Upvotes: 8

EdChum
EdChum

Reputation: 393963

read_csv takes a sep param, in your case just pass sep=';' like so:

data = read_csv(csv_path, sep=';')

The reason it failed in your case is that the default value is ',' so it scrunched up all the columns as a single column entry.

Upvotes: 114

Related Questions