2016-08-16 1 views
3

Ich habe eine ziemlich große Pandas DataFrame aus CSV eingelesen (~ 3 Millionen Zeilen & 72 Spalten), und ich bekomme Warnungen, dass einige der Spalten gemischte Datentypen enthalten:Warnung: mehrere Datentypen in Spalte sehr großen Datenframes

DtypeWarning: Columns (1,2,3,15,16,17,18,19,20,21,22,23,31,32,33,35,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,55,57,58,60,71) have mixed types. Specify dtype option on import or set low_memory=False. 
    interactivity=interactivity, compiler=compiler, result=result) 

Was ist der beste Weg, damit umzugehen, da ich nicht nur die CSV Augäpfel? Gibt es eine Möglichkeit, eine Liste aller Datentypen zu erhalten, die in einer bestimmten Spalte vorkommen, und welche Zeilennummern sie haben?

+0

Wenn Sie die dtypes vor der Hand wissen, könnten Sie eine Konverterfunktion verwenden, um Ihre Daten in der richtigen Art zu werfen beim Lesen ... – Kartik

+0

@Kartik Ich weiß nicht, die Datentypen – helloB

Antwort

2

ist Folgendes zu beachten df

df = pd.DataFrame(dict(col1=[1, '1', False, np.nan, ['hello']], 
         col2=[2, 3.14, 'hello', (1, 2, 3), True])) 
df = pd.concat([df for _ in range(2)], ignore_index=True) 

df 

enter image description here

Sie könnten die verschiedenen Arten untersuchen und wie viele von ihnen sind mit

df.col1.apply(type).value_counts() 

<type 'float'> 2 
<type 'int'>  2 
<type 'list'>  2 
<type 'bool'>  2 
<type 'str'>  2 
Name: col1, dtype: int64 

könnten Sie untersuchen, welche Reihen von col1 sind Schwimmer wie dieses

enter image description here

Verwandte Themen