Home > Enterprise >  pandas read csv as empty while it is not
pandas read csv as empty while it is not

Time:08-31

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!

CodePudding user response:

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)

CodePudding user response:

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)
  • Related