从列中删除前n位数

时间:2016-10-17 08:29:28

标签: python database pandas dataframe

我有一个pandas数据帧(大约7000行),如下所示:

Col1    Col2
12345   1234
678910  6789 

我想删除col1中的前4位数字,以便最终得到:

Col1   Col2
5      1234
10     6789

或者只是将第一列分成两列。

1 个答案:

答案 0 :(得分:3)

将第一列分成两个新列:

In [5]: df[['New1','New2']] = (df['Col1'].astype(str)
                                         .str.extract(r'(\d{4})(\d+)', expand=True)
                                         .astype(int))

In [6]: df
Out[6]:
     Col1  Col2  New1 New2
0   12345  1234  1234    5
1  678910  6789  6789   10

In [9]: df.dtypes
Out[9]:
Col1    int64
Col2    int64
New1    int32
New2    int32
dtype: object

注意:此解决方案适用于Pandas版本0.18.0 +