将列类型更改为int64 pandas geopandas最佳实践

时间:2018-02-15 16:58:04

标签: python pandas python-3.5 geopandas

我正在尝试将包含只有.0作为小数的浮点数的列转换为整数64。我在这个论坛上发现了一些较旧的answers,但它们似乎不再起作用了。最后我用过:

df_test["column_name"] = df_test['column_name'].apply(lambda x: np.int64(x))

我想知道这是否是大熊猫的最佳做法,以及如何比较to to_numeric()

2 个答案:

答案 0 :(得分:2)

pandas中,这可行:

df_test['column_name'] = df_test['column_name'].astype('int64')

由于geopandas建立在pandas之上,所以这也应该有用。至于它与to_numeric的比较方式,它们都是矢量化的,并且在速度方面具有可比性:

针对适度大小的系列测试astype方法与to_numeric方法的速度,0.00007522797584533691astype平均0.0003248021602630615to_numeric的秒数。

答案 1 :(得分:2)

最佳选择,如果需要最佳整数格式:

df_test["column_name"] = pd.to_numeric(df_test['column_name'], downcast='integer')

这是矢量化的,df.series.apply是一个循环并且很慢。

如果您确实需要np.int64,请参阅@sacul's solution