2016-03-24 5 views
6

Versuch csv Datei in Pandas Datenrahmen mit der folgenden FormatierungSpaltentypen einstellen, während sie mit Pandas Lesen csv

dp = pd.read_csv('products.csv', header = 0, dtype = {'name': str,'review': str, 
                 'rating': int,'word_count': dict}, engine = 'c') 
print dp.shape 
for col in dp.columns: 
    print 'column', col,':', type(col[0]) 
print type(dp['rating'][0]) 
dp.head(3) 

Dies ist die Ausgabe zu lesen:

(183531, 4) 
column name : <type 'str'> 
column review : <type 'str'> 
column rating : <type 'str'> 
column word_count : <type 'str'> 
<type 'numpy.int64'> 

enter image description here

Ich kann Art zu verstehen, dass Pandas möglicherweise finden Sie es schwierig, eine String-Darstellung eines Wörterbuchs in ein Wörterbuch gegebenen this und this zu konvertieren. Aber wie kann der Inhalt der "Rating" -Spalte str und numpy.int64 sein ???

Übrigens, Tweaks wie keine Engine oder Header festlegen nichts ändern.

Danke und Grüße

Antwort

1

Just do:

for col in dp.columns: 
    print 'column', col,':', col[0] 

Und Sie werden sehen Sie die ersten Buchstaben jeden Spaltennamen drucken, die eine Zeichenfolge ist. Achten Sie darauf, dass Sie hier auf dem Namen der Spalte iterieren, nicht auf jeder Serie.

for col in dp.columns: 
    print 'column', col,':', type(dp[col][0]) 

... wie Sie für die Spalte Bewertung tun !!: so eher tun

Was Sie wollen, ist die Art von jeder Spalte durch eine Schleife zu überprüfen

+0

Danke, das war ein Zettel meinerseits :) Ich wähle dies als die akzeptierte Antwort, weil es eine direkte Antwort auf meine Frage ist. – user2738815

+0

Ich vermute, es war ein Tippfehler, manchmal schwer zu erkennen, wenn man sich auf den Code konzentrierte;) –

1

Ich glaube, Sie diese ein erstes überprüfen sollten: Pandas: change data type of columns

wenn google pandas dataframe column type, es auf die Top-5-Antworten ist.

+0

Vielen Dank, das ist nützlich. Ich wünschte, es gäbe auch eine Diskussion darüber, wie man die Umwandlung in dict-Typ erzwingen könnte (falls es einen gibt). – user2738815

1

Verwendung:

dp.info() 

die Datentypen der Spalten zu sehen. dp.columns bezieht sich auf die Spaltenkopfnamen, die Strings sind.

+0

Eine weitere Abkürzung, die ich in der Dokumentation der sehr dichten Pandas vermisste - Danke. – user2738815

Verwandte Themen