我希望通过在每行的最后一个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