web-dev-qa-db-fra.com

read_csv ne lit pas les noms de colonne correctement dans ce fichier?

J'ai un fichier csv comme suit:

0 5
1 10
2 15
3 20
4 25

Je veux l'enregistrer en tant que dataframe avec les axes x, y comme noms, puis le tracer. Cependant, lorsque j'assigne x, y, je reçois un DataFrame foiré, que se passe-t-il?

column_names = ['x','y']
x = pd.read_csv('csv-file.csv', header = None, names = column_names)
print(x)

          x   y
0   0 5 NaN
1  1 10 NaN
2  2 15 NaN
3  3 20 NaN
4  4 25 NaN

J'ai essayé sans spécifier None pour header, en vain.

16
Vyraj

Ajouter un paramètre sep="\s+" ou delim_whitespace=True à read_csv :

import pandas as pd

temp=u"""0 5
1 10
2 15
3 20
4 25"""
#after testing replace io.StringIO(temp) to filename
column_names = ['x','y']
df = pd.read_csv(pd.compat.StringIO(temp), sep="\s+", header = None, names = column_names)

print (df)
   x   y
0  0   5
1  1  10
2  2  15
3  3  20
4  4  25

Ou:

column_names = ['x','y']
df = pd.read_csv(pd.compat.StringIO(temp),
                 delim_whitespace=True, 
                 header = None, 
                 names = column_names)

print (df)
   x   y
0  0   5
1  1  10
2  2  15
3  3  20
4  4  25
21
jezrael

Vous pouvez essayer ceci:

import pandas as pd    

column_names = ['x','y']
df = pd.read_csv('csv-file.csv',header=None)
df.columns = column_names
7
Chinmay Joshi