2017-05-23 4 views
1

Ich habe ein seltsames Problem. wenn ich zwei Spalten vergleiche, wo ihre Werte gleich sind, reagiert es nicht gleich was hier falsch ist?kehrt ungleich wenn gleich

df['manual_raw_value'][0:10] 
    Out[12]: 
    0  2 
    1  32 
    2  59 
    3 6635 
    4  1 
    5 5320 
    6 1548 
    7  34 
    8  29 
    9  854 
    Name: manual_raw_value, dtype: int64 

    df['raw_value'][0:10] 
    Out[13]: 
    0  2 
    1  32 
    2  59 
    3  6635 
    4  1 
    5  5320 
    6  1548 
    7  34 
    8  29 
    9 00Ô54 

df['manual_raw_value'][0:10] == df['raw_value'][0:10] 
Out[14]: 
0 False 
1 False 
2 False 
3 False 
4 False 
5 False 
6 False 
7 False 
8 False 
9 False 
dtype: bool 

zum Beispiel die erste Zelle ist gleich 2 in beiden Spalte

+0

Ihre letzte Wert in 'raw_value' zeigt' 00Ô54' das sieht aus wie ein 'str' – EdChum

Antwort

2

Ich denke, es verschiedene dtypes ist - man ist str und andere int.

Sie können es durch:

print (df.dtypes) 

So astype brauchen, wenn konvertieren Spalte:

df['manual_raw_value'] = df['manual_raw_value'].astype(str) 

Für konvertieren alle Werte in DataFrame zu str:

df = df.astype(str) 

Oder Parameter dtype in read_csv, wenn alle Spalten str konvertieren müssen:

df = pd.read_csv('file', dtype=str) 

Oder möglich ist Spalten angeben:

df = pd.read_csv('file', dtype={'manual_raw_value':str, 'raw_value':str}) 
+0

vielen Dank Es klappt – vincent75