2017-05-23 81 views
1

l有一個奇怪的問題。當我比較兩列的值相等時,它的反應不等於這裏的錯?返回時不等於

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 

例如所述第一小區是在兩個柱

+0

在'raw_value'顯示'你的最後一個值00Ô54'這看起來像一個'str' – EdChum

回答

2

我認爲有不同dtypes等於2 - 一個是str和另一個int

您可以通過檢查:

print (df.dtypes) 

所以需要astype,如果需要將列:

df = df.astype(str) 

或參數:

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

對於轉換在DataFramestr所有值dtype in read_csv如果需要的所有列轉換爲str

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

或者可以指定列:

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

非常感謝有用 – vincent75