object转integer
object怎么转integer呢?不知道的小伙伴来看看小编今天的分享吧!
Object转为Integer有两种方式:
1、使用(Integer)方式,可以兼容为null的情况,不会报错(推荐)
代码:
Integer abc = (Integer) obj;
2、使用parseInt方式,这样的话obj不能为null,否则会报错
这样是将object类型使用toString转为字符串String类型,然后将String类型使用parseInt转为int类型,再通过自动包装将int类型转为Integer类型
代码:
Integer.parseInt(obj.toString());
Integer.parseInt(String.valueof(obj));
拓展资料:
一、Object类介绍
Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗。所有的类,不管是谁,都是从它继承下来的。
二、toString方法介绍
一个字符串和另外一种类型连接的时候,另外一种类型会自动转换成String类型,然后再和字符串连接。基础的数据类型int,float,double转换成字符串比较简单,按照它们的数字转换过来就成了,可以引用类型呢,Personp=newPerson();一个字符串加上这个p,你就不知道要怎么把这个p转换成字符串了,因为这个p是一个引用类型。
三、Integer类概述:
在Java中,可能会使用到int类型的数据,但可能会有所要求:比如只能使用引用数据类型,但是由于int类型是基本数据类型,无法直接使用,所以需要进行包装,这就引入了Integer类,其他基本数据类型的包装类也是这样
Integer 类在对象中包装了一个基本类型 int 的值,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法
以上就是小编今天的分享了,希望可以帮助到大家。
object转integer类型
Pandas中数据类型转换(Object转数值)
- 使用astype()函数进行强制类型转换
- 使用pandas提供的函数如to_numeric()、to_datetime()
1.使用astype()函数进行强制类型转换
data['name'].astype('object')
data['name'] = data['name'].astype('name')
当某列原数据类型为字符串,非想转换为数值型就会报错。解决方案如下:
2.to_numeric()、to_datetime()
2.1.to_numeric()
pd.to_numeric(data['某列'], errors='coerce').fillna(0)
参数解释:
arg :(标量,列表,元组,一维数组或系列) 要转换的参数。
errors:{‘ignore’, ‘raise’, ‘coerce’}, 默认为“raise”
如果为“ raise”,则无效地解析将引发异常。
如果为“coerce”,则将无效解析设置为NaN。
如果为“ ignore”,则无效地解析将返回输入。
downcast{'integer','signed','unsigned','float'},默认值 None,如果不是None;
并且数据已成功转换为数字dtype(或者数据是从数字开始的),则根据以下规则将结果数据转换为可能的最小数字dtype:
'integer'或'signed':最小的有符号int dtype(最小值:np.int8)
'unsigned' :最小的无符号int dtype(最小值:np.uint8)
'float' :最小的float dtype(最小值:np.float32)
2.2.to_datetime()
可以把单独的year、month、day三列合并成一个单独的时间戳。
data['new_date'] = pd.to_datetime(data[['day', 'month', 'year']]) #产生一列新数据
to_numeric()存在的问题:
比如业务需要将一个csv读入,然后进行一些处理,比如对多个元素求和、求方差等等。要求忽略非数值型数据,而pandas的忽略数值型是整行整列的忽略,浮点数的问题。
浮点数在计算机中是没有办法完全精确表示的。所以会有保留的精度。
这在调用 pandas的内置方法to_numeric的时候更是凸显了出来:
字符串 2.067 在用该方法转为数值的时候,被认为是浮点型,依照规范,python中的浮点数是保留17位精度,所以可以得到这样的结果。
解决方案:
为了保证小数的精度,所以采用了decimal模块的Decimal类。
from Decimal import Decimal
import pandas as pd
import numpy as np
def convert_num(x, fill=None):
x = str(x)
try:
res = Decimal(x)
except Exception:
res = fill if fill else np.NaN
return res
df = pd.DataFrame([['3.517', '1', '2.06789464564654654654646', 2.067, 'sdf']])
df = df.applymap(lambda x: convert_num(x))
[print(data) for data in df.loc[0]]
print(df.iloc[0, 2])
调用的是applymap函数,它与apply函数的区别就是,applymap是针对于每个元素的,而apply是针对于行列级别的。
applymap是只接收一个func,不像apply,后面可以传入该func的参数,所以想给applymap里的func传参,采用的是lambda表达式的写法。
其他用法:Dateframe所有数值翻10倍
df = pd.DataFrame([[1,2,3,4,16],['1','2','3','4','F']],index =['Data1','Data2'])
df.apply(lambda x: x * 10)
- 04-26生活
清明团子的由来和寓意
- 06-12生活
睡觉符号
- 07-28科技
如何在爱剪辑中修改视频尺寸大小
- 02-14科技
时刻守护为什么不能实时定位
- 08-21教育
伦敦大学学院毕业后好找工作吗
- 08-07科技
如何为电脑设置锁屏密码?
- 06-11科技
打印机出现RPC服务器不可用修复
- 06-23生活
隐形眼镜护理液可以带上火车吗
推荐
- 1凉粉加明矾的作用340
- 2rhce认证从事工作有哪些445
- 3seo推广什么意思409
- 4马桶堵了泡多久自己会疏通286
- 5韭菜籽炒糊了怎么办494
- 6我家的人世间故事学生作文2022475