Omer
Omer

Reputation: 317

pandas read csv as empty while it is not

here is my code to read a CSV file I got, very straightforward:

import numpy as np
import pandas as pd
    sn1= pd.read_csv('myFile.csv')
if sn1.empty:
    print("empty")
print(sn1)

this is the output:

empty
Empty DataFrame
Columns: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.40, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.60, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.70, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.90, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, ...]
Index: []

[0 rows x 400 columns]

while clearly I can see that it's not empty: enter image description here

what am I doing wrong? Thank you very much!

Upvotes: 1

Views: 525

Answers (2)

Laguilhoat
Laguilhoat

Reputation: 323

Pandas is using the only line in your CSV file as the column names. Try this:

import numpy as np
import pandas as pd
    sn1= pd.read_csv('myFile.csv', header=None)
if sn1.empty:
    print("empty")
print(sn1)

Upvotes: 0

Muhammad Rizwan
Muhammad Rizwan

Reputation: 58

The problem is that your CSV file has a header, but no data. So when you try to read it with pandas, it can't find any data and so it returns an empty DataFrame.

You can either remove the header from your CSV file, or you can tell pandas not to look for a header:

sn1 = pd.read_csv('myFile.csv', header=None)

Upvotes: 4

Related Questions