【发布时间】:2020-09-30 21:24:50
【问题描述】:
在 Pandas 数据帧中
>> df.head()
A B C
0 1 â#0.00 + "s=?0.07 + 'due0.93 rt@-[ 3.01
1 2 â#0.02 + "s=?0.16 + 'due0.82 rt@-[ 2.97
...
我想只提取数值。专栏C我可以用,例如,
>> extr = df['C'].str.extract(r'(\d+\.\d+)', expand=False)
>> df['C'] = pd.to_numeric(extr)
>> df.head()
A B C
0 1 â#0.00 + "s=?0.07 + 'due0.93 3.01
1 2 â#0.02 + "s=?0.16 + 'due0.82 2.97
...
但B 列有问题。如何提取 + 操作以及浮点数?我试过了
>> extr = df['B'].str.extract(r'(\d+\.\d+)\+(\d+\.\d+)\+(\d+\.\d+)', expand=False)
我希望能给我类似的东西
0
0 '0.00+0.07+0.93'
1 '0.02+0.16+0.82'
...
但它给了我三列,其中包含NaN 值:
0 1 2
0 NaN NaN NaN
1 NaN NaN NaN
...
那么我怎样才能提取整个算术运算呢?
(只需要+操作,其他字符如-可以忽略。)
【问题讨论】:
标签: python-3.x regex pandas