将列类型更改为 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
,请参阅。
我正在尝试将包含只有 .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
,请参阅