Python提取float64类型变量首数字失败问题求助
问题解决方法
关于str(app_invoice['INVOICE_AMOUNT'])输出带\n的原因
你执行的是把整个Series对象转成字符串,Pandas在打印Series时会用换行符分隔每一行数据,所以输出里会出现\n。如果要查看单个值的字符串形式,得取Series里的单个元素,比如str(app_invoice['INVOICE_AMOUNT'].iloc[0]),这样就不会有换行符了。
提取float64类型INVOICE_AMOUNT首数字的正确方法
直接对Series操作时,不能用全局的str()函数,得用Pandas的字符串方法,步骤如下:
- 先把float类型转为字符串:用
.astype(str)方法,注意要处理可能的NaN值(如果有的话) - 提取首字符:用
.str[0]方法 - 可选:转成数值类型(如果需要)
示例代码:
# 处理非空值,提取首数字 app_invoice['FIRST_DIGIT'] = app_invoice['INVOICE_AMOUNT'].astype(str).str[0] # 如果有NaN值,先过滤或填充 # 比如填充0后再处理 app_invoice['FIRST_DIGIT'] = app_invoice['INVOICE_AMOUNT'].fillna(0).astype(str).str[0]
另外要注意:如果数值是负数(比如-123.45),首字符会是'-',如果只需要数字部分,可以先取绝对值再处理:
app_invoice['FIRST_DIGIT'] = app_invoice['INVOICE_AMOUNT'].abs().astype(str).str[0]
内容的提问来源于stack exchange,提问作者Sharif
相关产品推荐
相关产品推荐

