Seite 1 von 1

CSV-Dateien mit Ipython einlesen ....in jeder Tabellenzelle ""

Verfasst: Mittwoch 27. Januar 2016, 12:58
von Noranora
Hallo!

Ich habe in dem Ipython notebook eine Csv-Date eingelesen, und zwar so:

Code: Alles auswählen


import pandas as pd
import numpy as np
from dataj import fhead
pd.set_option('display.max_columns',60)

dat= pd.read_csv('xy.csv', sep=',"', skiprows=3)

column_names = ['parents','age', 'male','country','male']

dat =  pd.read_csv('xy.csv', skiprows=4, sep=',"', encoding='windows-1250', names=column_names, na_values=['.', '-'])
dat.head()



der Sep= ',"' weil eben zwischen jedem Element in der Datei ein ", steht. Eig sogar "," , aber dann funktioniert es nicht.
Mit dem Programmtext oben bekomme ich eine Tabelle mit den einzelnen Columnnames, jedoch steht in jeder Zelle der Tabelle Anführungszeichn um das Wort in der Zelle. Wie bekomme ich diese entfernt?

Ich hoffe ihr habt eine Idee. LG

Re: CSV-Dateien mit Ipython einlesen ....in jeder Tabellenzelle ""

Verfasst: Mittwoch 27. Januar 2016, 13:14
von BlackJack
@Noranora: Die " sind nicht Teil der Trennzeichen, sondern wie Du ja schon selbst bemerkt hast fassen die die Zeichenkettenwerte ein. Und damit muss man eigentlich gar nichts weiter machen, sondern einfach nur das ',' als Trenner angeben.

Code: Alles auswählen

In [7]: !cat test.csv
"Eine UI für Todos implementieren";1
"Einkaufsliste schreiben";0
"Weltherrschaft erlangen";0

In [8]: pandas.read_csv('test.csv', sep=';', names=['A', 'B'])
Out[8]: 
                                  A  B
0  Eine UI für Todos implementieren  1
1           Einkaufsliste schreiben  0
2           Weltherrschaft erlangen  0

Re: CSV-Dateien mit Ipython einlesen ....in jeder Tabellenzelle ""

Verfasst: Mittwoch 27. Januar 2016, 13:22
von Noranora
Hallo!
Ja, ich möchte die Tabelle jedoch gerne plotten, aber dies ist nicht möglich, da die Werte in den Tabellen auf grund der "" nicht als Zahlen erkannt werden. Dies möchte ich gerne irgendwie ändern....
Danke für deine ANtwort!

Re: CSV-Dateien mit Ipython einlesen ....in jeder Tabellenzelle ""

Verfasst: Mittwoch 27. Januar 2016, 13:43
von Noranora
Denn wenn ich als sep=',' angebe, bekomme ich nur eine Spalte für alle Wortketten, es müssten jedoch 5 sein.


Soe sieht eine Zeile ursprünglich in der CSV-DAtei aus:

Berlin,"2.3","0.8","4.2","2.2"

ach ich habe vergessen, ich arbeite mit der neuesten Version Jupyter ...

Re: CSV-Dateien mit Ipython einlesen ....in jeder Tabellenzelle ""

Verfasst: Mittwoch 27. Januar 2016, 13:57
von Sirius3
@Noranora: und wo ist da jetzt das Problem? Pandas erkennt doch dennoch, dass es sich um Zahlen handelt.

Code: Alles auswählen

u = pandas.read_csv(w, names=['City','a','b','c'])
#      City    a    b    c    d
# 0  Berlin  2.3  0.8  4.2  2.2
print u['a'].dtype
# dtype('float64')