我有一个数据框,持续时间是其中一个属性.持续时间的内容如下:
array(['487', '346', ..., '227', '17']).
而df.info(),我得到:数据列(共22列):
duration 2999 non-null object
campaign 2999 non-null object
...
现在我想将持续时间转换为int.有什么解决方案吗?
最佳答案 使用
astype
:
df['duration'] = df['duration'].astype(int)
计时
使用以下设置生成大型样本数据集:
n = 10**5
data = list(map(str, np.random.randint(10**4, size=n)))
df = pd.DataFrame({'duration': data})
我得到以下时间:
%timeit -n 100 df['duration'].astype(int)
100 loops, best of 3: 10.9 ms per loop
%timeit -n 100 df['duration'].apply(int)
100 loops, best of 3: 44.3 ms per loop
%timeit -n 100 df['duration'].apply(lambda x: int(x))
100 loops, best of 3: 60.1 ms per loop