pandas:数据类型的转换方法

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

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

pandas:数据类型的转换方法_第1张图片

再看看数据前5行

pandas:数据类型的转换方法_第2张图片

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

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

pandas:数据类型的转换方法_第3张图片

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

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等价

pandas:数据类型的转换方法_第4张图片

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

pandas:数据类型的转换方法_第5张图片

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

pandas:数据类型的转换方法_第6张图片

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

pandas:数据类型的转换方法_第7张图片

或者将该列类型转换成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之间数据

pandas:数据类型的转换方法_第8张图片

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

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

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

 

你可能感兴趣的:(Python)