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

Change column type to int64 pandas geopandas best practice

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

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

我想知道这是否是 pandas 中的最佳实践以及这与 to to_numeric()

相比如何

pandas 中,这会起作用:

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

因为 geopandas 建立在 pandas 之上,这应该也可以。至于它与 to_numeric 相比如何,它们都是矢量化的,并且就速度而言具有可比性:

针对中等大小的系列测试 astype 方法与 to_numeric 方法的速度,我得到 astype 和 [=19] 的平均 0.00007522797584533691 秒=] 秒 to_numeric.

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

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

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

如果您确实需要np.int64,请参阅