目录
1、astype
一、astype函数
>>> import pandas as pd
>>> df1 = pd.DataFrame([['Snow','22','320'],['Tyrion','32','220'],['Sansa','18','120'],['Arya','14']], columns=['name','age','revenue'])
>>> df1.dtypes
name object
age object
revenue object
dtype: object
# 更改单列的类型
>>> resultDF["day"] = resultDF["day"].astype(int)
>>> column_types = {"name":str,"age":int}
>>> df2 = df1.astype(dtype=column_types)
>>> df2.dtypes
name object
age int64
revenue object
dtype: object
>>>
>>> column_types = {"revenue":float}
>>> df3 = df2.astype(dtype=column_types)
>>> df3.dtypes
name object
age int64
revenue float64
dtype: object
# 通过.round(n)指定精度
>>> df2 = pd.DataFrame([['Snow','22','320'],['Tyrion','32','220'],['Sansa','18','120'],['Arya','14']], columns=['name','age','revenue'])
>>> df2.assign(cost=lambda x: x['revenue'].astype(float).round(5))
>>>
>>> column_types = {"revenue":int}
>>> df4 = df2.astype(dtype=column_types)
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/pandas/util/_decorators.py", line 178, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 4990, in astype
results.append(col.astype(dtype[col_name], copy=copy))
File "/usr/local/lib/python2.7/dist-packages/pandas/util/_decorators.py", line 178, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 5001, in astype
**kwargs)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 3714, in astype
return self.apply('astype', dtype=dtype, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 3581, in apply
applied = getattr(b, f)(**kwargs)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 575, in astype
**kwargs)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 664, in _astype
values = astype_nansafe(values.ravel(), dtype, copy=True)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/dtypes/cast.py", line 709, in astype_nansafe
return lib.astype_intsafe(arr.ravel(), dtype).reshape(arr.shape)
File "pandas/_libs/lib.pyx", line 456, in pandas._libs.lib.astype_intsafe
File "pandas/_libs/src/util.pxd", line 142, in util.set_value_at_unsafe
TypeError: long() argument must be a string or a number, not 'NoneType'
遇到以下问题: