我試圖使用.map()
將DataPrame中的列數據類型從type: object
更改爲type: int64
。將Pandas DataFrame中的列類型更改爲int64
df['one'] = df['one'].map(convert_to_int_with_error)
這裏是我的功能:
def convert_to_int_with_error(x):
if not x in ['', None, ' ']:
try:
return np.int64(x)
except ValueError as e:
print(e)
return None
else:
return None
if not type(x) == np.int64():
print("Not int64")
sys.exit()
這成功完成。然而,當我完成後,檢查數據類型,其恢復爲type: float
:
print("%s is a %s after converting" % (key, df['one'].dtype))
正是你在哪裏把'如果沒有輸入(X)== np.int64():'條件?你是否說'convert_to_int_with_error'永遠不會返回'None'? – unutbu
對於數字容器,'None'將被視爲'NaN',以保持它的'float'(數值)D型。你需要找到一種方法來處理這些缺失的值/空字符串,這樣會導致'np.int64' dtype。 –