pandas:数据类型的转换方法

最近在做数据预处理的时候,发现有些细微地方需要注意,当某列数据为object类型时,不能通过字符类型和整数类型的过滤方法,可以先转换一下数据类型。

首先,先看数据字段的类型用test.info()

再看看数据前5行

接下来我想对列hh拆分成具体的小时、分钟、秒(三列),代码编写如下:

test['hh'].str.split(':',expand=True)

将这拆分的三列合并到原数据集中

1.test.join(test['hh'].str.split(':',expand=True))
2.test.join(test['hh'].str.split(':',expand=True).rename(columns={0:'H',1:'M',2:'S'}))
#在1的基础上重命名了
3.test = pd.concat([test, test['hh'].str.split(':', expand=True)], axis=1)#与1等价

另外将三列合并的话可以:

将三列恢复到原来的样子:

接下来,想对day这列日期变成整数形式:

或者将该列类型转换成datetime64

test['day'] = pd.to_datetime(test['day']

#时间类型过滤
 test[(test['day']>=pd.datetime(2020,2,23)) & (test['day']<=pd.datetime(2020,2,29))]
找出2020-02-23到2020-02-29之间数据

这个时候test['day']已经是datetime类型。

另外数据类型转换的几个方法:

test['M'].astype(int) 将该列类型变成整数值
pd.to_numeric(test['M'])
pd.to_datetime(test['day'])

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值