关键时刻,第一时间送达 
今天给大家讲讲pandas读取表格后的一些常用数据处理操作。
这篇文章其实来源于自己的数据挖掘课程作业,通过完成老师布置的作业,感觉对于使用python中的pandas模块读取表格数据进行操作有了更深层的认识,这里做一个整理总结。 本文总结了一些通过pandas读取表格并进行常用数据处理的操作,更详细的参数应该关注官方参数文档 相关参数简介:
tabledata = pandas.read_excel('./hotel.xlsx', header=None, sep=',', nrows=10)
print(tabledata)
相关参数简介: name_columns = [' ','名字','类型', '城市', '地区', '地点', '评分', '评分人数', '价格']
tabledata = pandas.read_excel('./hotel.xlsx', header=0, names=name_columns, sep=',', nrows=10)
print(tabledata)
这里我们做一个简单的遍历操作即可完成,取值使用的函数是ix。 更加详细的使用说明可以参考昨日「凹凸数据」的另一条推文,《 ix | pandas读取表格后的行列取值改值操作》。 name_columns = [' ','名字','类型', '城市', '地区', '地点', '评分', '评分人数', '价格']
tabledata = pandas.read_excel('./hotel.xlsx', header=0, names=name_columns, sep=',')
hotel_name_list = []
for i in range(421): if tabledata.ix[i,2] == '商务出行': hotel_name_list.append(tabledata.ix[i,1])
print(hotel_name_list)
这里开始出现缺失值,提一下缺失值相关的两个参数: na_values:默认会将'-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A','#N/A', 'N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan', '', 转换为NaN,且na_values参数还支持定义另外的应处理为缺失值的值
原版解释: na_values : scalar, str, list-like, or dict, default None Additional strings to recognize as NA/NaN. If dict passed, specific per-column NA values. By default the following values are interpreted as NaN: '-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A','#N/A', 'N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan', ''
name_columns = [' ','名字','类型', '城市', '地区', '地点', '评分', '评分人数', '价格']
tabledata = pandas.read_excel('./hotel.xlsx', header=0, names=name_columns, sep=',')
tableline = tabledata[tabledata['类型'].isnull()]
print(tableline)
fillna函数用于替换缺失值,常见参数如下: value参数决定要用什么值去填充缺失值 axis:确定填充维度,从行开始或是从列开始 limit:确定填充的个数,int型
通常limit参数配合axis可以用于替换数量方向的控制 我们这里根据需求,最简单的就是将需要修改的这一列取出来进行修改,之后对原数据进行列重新赋值即可 name_columns = [' ','名字','类型', '城市', '地区', '地点', '评分', '评分人数', '价格']
tabledata = pandas.read_excel('./hotel.xlsx', header=0, names=name_columns, sep=',')
tableline = tabledata['类型'].fillna(value='其他')
tabledata['类型'] = tableline
print(tabledata)
这个的思路和上面一个基本一致,区别在于我们需要线求出平均值。平均值的求解肯定不需要缺失值参与,于是我们先取出某一列不存在的缺失值的所有数据,再取出这一列数据,通过mean函数直接获取平均值。 同理的函数使用还有: name_columns = [' ','名字','类型', '城市', '地区', '地点', '评分', '评分人数', '价格']
tabledata = pandas.read_excel('./hotel.xlsx', header=0, names=name_columns, sep=',')
tableline = tabledata[tabledata['评分'].isnull().values==False]
score_avg = tableline['评分'].mean()
tableline = tabledata['评分'].fillna(value=score_avg)
tabledata['评分'] = tableline
print(tabledata)
|