轉換的D型使用astype
然後使用矢量化str
法裁STR爲str,然後再轉換回再次int64
D型:
In [184]:
df['DATE'] = df['DATE'].astype(str).str[:-2].astype(np.int64)
df
Out[184]:
DATE
0 201107
1 201107
2 201107
3 201107
4 201107
5 201107
6 201107
7 201108
8 201108
9 201108
In [185]:
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 10 entries, 0 to 9
Data columns (total 1 columns):
DATE 10 non-null int64
dtypes: int64(1)
memory usage: 160.0 bytes
嗯......
原來有一個內置在方法floordiv
:
In [191]:
df['DATE'].floordiv(100)
Out[191]:
0 201107
1 201107
2 201107
3 201107
4 201107
5 201107
6 201107
7 201108
8 201108
9 201108
Name: DATE, dtype: int64
更新
對於一個有1000行DF,該floordiv
方法是相當快:
%timeit df['DATE'].astype(str).str[:-2].astype(np.int64)
%timeit df['DATE'].floordiv(100)
100 loops, best of 3: 2.92 ms per loop
1000 loops, best of 3: 203 µs per loop
在這裏,我們觀察到〜10倍的加速
僅供參考注:樓層劃分比str方法快得多。 – Zero
@零確實,我應該添加計時,我會稍後添加它們 – EdChum
@零增加計時 – EdChum