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

目录

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值