2016-05-31 5 views
10

ich eine CSV-Datei haben, wie folgt:read_csv liest die Spaltennamen in dieser Datei nicht korrekt?

0 5 
1 10 
2 15 
3 20 
4 25 

ich es als ein Datenrahmen mit x speichern möchten, y als Namen Achsen, zeichnen Sie es dann. Aber wenn ich x, y zuweisen bekomme ich einen vermasselten DataFrame, was passiert?

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 

Ich habe versucht, ohne None für header, ohne Erfolg angibt.

+0

streng Weil, das ist nicht eine durch Kommata getrennte Wert (CSV), es ist whitespace-separated Wert, manchmal generisch bezeichnet als TSV (tab-separierter Wert). – smci

Antwort

10

Add Parameter sep="\s+" oder delim_whitespace=True-read_csv:

import pandas as pd 
import io 

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(io.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 

Oder:

column_names = ['x','y'] 
df = pd.read_csv(io.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 
5

Sie konnten dieses versuchen:

import pandas as pd  

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