在pandas/python中拆分数字字符串



我希望通过在每行的最后一个0上进行拆分,将pandas数据帧中的以下列拆分为两列。

000012345
000012345
000012345

我希望它看起来像

0000 12345
0000 12345

我一直在研究str.split,因为没有常用的分隔符,我似乎不知道如何处理它,也不知道如何在第4个0上进行拆分。

我之前用以下命令成功地解决了类似的问题,但似乎无法解决,因为我不想拆分标签,而是想在行中拆分值。

df.labels.str.split(':',1(.tolist((

假设"col";在列中,可以使用lookbackingregex:来split

df['col'].str.split(r'(?<=^.{4})', expand=True)

正则表达式:

(?<=^.{4})    # match the empty space preceded by the first 4 characters

或者使用str.extract:

df['col'].str.extract('(^.{4})(.*)')
# df[['col2', 'col3']] = df['col'].str.extract('(^.{4})(.*)')

完整示例:

df[['col2', 'col3']] = df['col'].str.split('(?<=^.{4})', expand=True)

输出:

col  col2   col3
0  000012345  0000  12345
1  000012345  0000  12345
2  000012345  0000  12345

使用字符串替换检查以下代码

df = pd.DataFrame({'col1':['000012345','000012345','000012345']})
df['col2'] =  df['col1'].astype(int)
df['col3'] = df.apply(lambda row: row['col1'].replace(str(row['col2']),''), axis =1)
print(df)

输出:

col1   col2  col3
0  000012345  12345  0000
1  000012345  12345  0000
2  000012345  12345  0000

最新更新