Python:在数据帧中将字符串数组转换为int数组

时间:2016-11-02 17:30:24

标签: python pandas numpy

我有一个数据框,持续时间是其中一个属性。持续时间的内容如下:

             duration        2999 non-null object
             campaign        2999 non-null object
             ...

df.info(),我得到:数据列(共22列):

{{1}}

现在我想将持续时间转换为int。有没有解决方案?

3 个答案:

答案 0 :(得分:4)

使用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

答案 1 :(得分:3)

df['duration'] = df['duration'].astype(int)

答案 2 :(得分:0)

使用int(str)

df['duration'] = df['duration'].apply(lambda x: int(x)) #df is your dataframe with attribute 'duration'