我有一个列“后缀”,我想将其分为列“后缀”和“字母” 但是数据有点脏:
'suffix'
7
D-25
K110
NO7
NO-8
我想要的结果:
'suffix' 'character'
7 Nan
25 D
110 K
7 NO
8 NO
使用Pandas Series.str.split很难做到吗? 我已经研究过正则表达式,但是我对这些正则表达式没有经验,也找不到可以使用的示例。
答案 0 :(得分:4)
您可以通过向熊猫传递一个正则表达式来做到这一点:
>>> import re
>>> import pandas as pd
>>> regex = re.compile(r'(?P<char>[A-Z]*)-*(?P<suf>\d+)')
>>> s = pd.Series(['7', 'D-25', 'K110', 'NO7', 'NO8'])
>>> s.str.extract(regex).replace('', 'NaN')
char suf
0 NaN 7
1 D 25
2 K 110
3 NO 7
4 NO 8
答案 1 :(得分:2)
在@Brad Solomon回答之前,我开始写这篇文章。他虽然矮一些,但是这种方法显示了Pandas中的一些内置正则表达式处理。
settings
这为您提供了一个这样的DataFrame:
public IActionResult Credit([FromBody] Data data)
{
var x = Report();
return Ok(new {Active = x.Item1, UserName = x.Item2});
}