在数据处理时,有时需要对数据进行分列,类似于Excel里面的分列功能,这个在pandas里面也可以实现,下面就来详细介绍相关的方法及注意点,前提是你已经对pandas有一定的了解
导入数据
这里介绍的是从Excel导入数据,当然也可以从其他文件导入、数据库查询后导入等,为了弄清楚里面的细节,本教程从Excel导入数据
import pandas as pd
import numpy as np
data=pd.read_excel('split.xlsx')
查看原始数据及各列数据类型,可以看到指标、选项都是object类型,其中选项列没有缺失值
原始数据.png
对选项列进行分列
对导入的原始数据进行分列,这里运用的是pandas.Series.str.split方法,可以理解为把Series作为字符串进行分列操作,分列都是对字符串进行操作的
split_data=data['选项'].str.split(':',expand=True) #需要添加expand=True,使分列后的数据扩展为一个数据框
split_data
原始数据分列.png
可以明显看到分列后的数据,第1、5、6索引行全是缺失值,对比上面的原始数据,这些都是只有一个数字,难道分列方法split对只有一个数字不能分列吗?其实则并不然,实际的原因请往下看
寻找原因