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

问题描述 投票:0回答:2

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

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

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

python pandas python-3.5 geopandas
2个回答
2
投票

pandas,这将工作:

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

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

测试astype方法与to_numeric方法对于适度大小的系列的速度,我得到0.00007522797584533691astype秒的0.0003248021602630615平均to_numeric秒。


2
投票

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

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

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

如果你真的需要np.int64,请参阅@sacul's solution

© www.soinside.com 2019 - 2024. All rights reserved.