我能够弄清楚如何用数字和字母拆分我的专栏,并且找到了拆分数字和字母的解决方案。但是我有一个问题,就是丢失所有跟在前导数字/数字之后的数字,并且找不到解决方案(并且还在学习如何使用正则表达式)。
简单示例:
import pandas as pd
import numpy as np
data = np.array([['Col1','Col2'],
['1','05MW'],
['2','16MW'],
['3','05SW1'],
['4','05SW2']])
df = pd.DataFrame(data=data[1:,:],
index=data[1:,0],
columns=data[0,:])
df[['Col2', 'id']] = df['Col2'].str.extract('(\d+)([A-Za-z]*)', expand=True)
礼物:
print (df)
Col1 Col2 id
1 1 05 MW
2 2 16 MW
3 3 05 SW
4 4 05 SW
但是,我不想丢失任何数字,包括前导数字之后的数字。我正在尝试实现以下输出:
print (df)
Col1 Col2 id
1 1 05 MW
2 2 16 MW
3 3 05 SW1
4 4 05 SW2
答案 0 :(得分:2)
添加0-9
来解析数字:
df[['Col2', 'id']] = df['Col2'].str.extract('(\d+)([A-Za-z0-9]*)', expand=True)
或使用.*
解析所有值:
df[['Col2', 'id']] = df['Col2'].str.extract('(\d+)(.*)', expand=True)
print (df)
Col1 Col2 id
1 1 05 MW
2 2 16 MW
3 3 05 SW1
4 4 05 SW2