我想在数据框中将点和文本与数字分开
数据帧如下所示:
Net.Liq.37584957
Haircut48216354
Deficit10631397
NaN
Haircutperassetclass
Equity31349682
Commodity12461964
FixedIncome663451
Currency3741257
尝试了以下方法:df.col.str.extract(“([a-zA-Z]+)([^a-zA-Z]+)”,expand=True),但第一行同时有点和文本,因此它是这样显示的
0 1
0 Net .
1 Haircut 48216354
2 Deficit 10631397
3 NaN NaN
4 NaN NaN
5 Equity 31349682
6 Commodity 12461964
7 FixedIncome 663451
8 Currency 3741257
我如何解决这个问题
看起来您需要模式
([a-zA-Z.]+)(\d+)?
Ex:
输出:
假设源数据帧中感兴趣的列具有名称Txt,请运行:
(
import re
必需)您的数据样本的结果是:
注意:第一列有名称字母,但您写下要分隔:
所以这列实际上包含字母和点
你可以用
见regex demo
详细信息
^
-字符串的开头(.*?)
-组1:任何0+字符,尽可能少(?:\.?(\d+))?
-可选的序列:\.?
-可选点(\d+)
-第2组:一个或多个数字$
-字符串的结尾李>在代码中
输出:
相关问题 更多 >
编程相关推荐