2017-12-15 1 views
0

Ich lese eine CSV-Datei mit Spalten, die gemischte Datentypen enthalten. Ich bin mir nicht sicher, was ich tun soll.Pandas: Umgang mit Spalten mit gemischten Typen

Erstens ist dies die Daten, die ich verwende: https://www.kaggle.com/epa/fuel-economy/data

Jetzt lese ich diese Datei in:

data = pd.read_csv('data/database.csv', sep=',') 

Dies ist die Fehlermeldung erhalte ich:

DtypeWarning: Columns (7,16,62,64,65,67,68,78) have mixed types. Specify dtype option on import or set low_memory=False. 
    interactivity=interactivity, compiler=compiler, result=result) 

Jetzt frage ich mich, was ich tun soll. Ich könnte low_memory=False hinzufügen oder den Datentyp dieser Spalten mit der read_csv Methode festlegen. Mein Problem ist, dass ich nicht sicher bin, auf welche Art von Typ ich es setzen sollte, weil dieser Datensatz so riesig ist und ich nicht herausfinden kann, welcher Datentyp für jede Spalte am besten ist.

Könnte mir jemand bei meinem Problem helfen?

+2

'Ich könnte low_memory = False hinzufügen, das ist wahrscheinlich die Lösung. Es ist schwer zu sagen, welcher Datentyp für jede Spalte der beste ist. Pandas macht das automatisch. – Dark

Antwort

0

Um einen Ausdruck von der Art der Daten zu erhalten, habe ich folgendes:

eine iterable des Datensatzes erstellen

weisen Sie den ersten chunksize variable

df_chunks = pd.read_csv('database.csv', sep=',', chunksize=5) 
df1 = next(df_chunks) # df1 is a dataframe of the first 5 rows 

die Art der erhalten Daten für die erste Reihe:

for i, t in enumerate(df1.iloc[0]): 
    print(type(t)) 

(da der Ausdruck lang ist, können Sie appe nd auf eine Liste oder erstellen Sie ein Wörterbuch mit Schlüssel die Spaltennamen und Werte die Typen für eine einfachere Suche)

oder:

df1.info() 

hoffe, das hilft!

Verwandte Themen