我有一个pandas数据帧(大约7000行),如下所示:
Col1 Col2
12345 1234
678910 6789
我想删除col1中的前4位数字,以便最终得到:
Col1 Col2
5 1234
10 6789
或者只是将第一列分成两列。
答案 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 +