我试图从字符串列中仅提取整数和 float
我努力了
data['new'] = data['text'].str.extract(r'^\d+\.\d+$')
最佳答案
如果需要仅提取带有数字的值:
data = pd.DataFrame({'text':['20','45.45','ss4','7.4ds','dr']})
data['new'] = data['text'].str.extract(r'^(\d+\.\d+|\d+)$')
print (data)
text new
0 20 20
1 45.45 45.45
2 ss4 NaN
3 7.4ds NaN
4 dr NaN
然后转换为 float :
data['new'] = data['text'].str.extract(r'^(\d+\.\d+|\d+)$').astype(float)
print (data)
text new
0 20 20.00
1 45.45 45.45
2 ss4 NaN
3 7.4ds NaN
4 dr NaN
或者使用to_numeric
功能:
data['new'] = pd.to_numeric(data['text'], errors='coerce')
print (data)
text new
0 20 20.00
1 45.45 45.45
2 ss4 NaN
3 7.4ds NaN
4 dr NaN
关于python - 想要将整数和 float 与包含不同字符串的列分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58024433/