python dataframe数据类型_pandas dataframe更改数据类型

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:43   124   0

目录

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'

遇到以下问题:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP