将Pandas DataFrame中的列类型更改为int64

时间:2016-12-30 14:41:18

标签: python pandas dataframe type-conversion series

我正在尝试使用<access origin="tel:*" launch-external="yes" /> 在DataFrame中将列的数据类型从type: object更改为type: int64

.map()

这是我的功能:

   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

1 个答案:

答案 0 :(得分:2)

我认为问题是您的问题值已从None转换为NaN,因此int会转换为float - 请参阅docs

相反map您可以使用带有参数errors='coerce'的{​​{3}}将有问题的值转换为NaN

df['one'] = pd.to_numeric(df['one'], errors='coerce')