提示:本文为学习过程中的简单记录,分享给大家,希望对大家有所帮助。数据处理的五个必备知识:列名设置、数据排序、重置索引、数值四舍五入、agg()方法
数据处理的五个必备知识:列名设置、数据排序、重置索引、数值四舍五入、agg()方法
1.数据列名设置
# 1.数据列名设置
import pandas as pd
dict_1 = {'年龄':[23, 22, 21], '岗位':['客服','运营', '公关'], '年购买量':[10, 15, 8]}
# 创建df对象
jobs_df = pd.DataFrame(dict_1) # 通过字典创建DataFrame,字典的键作为对象列名,字典的值作为列数据
# 查看jobs_df
jobs_df
goods_info = [
['巧克力', 77.675, '47箱', '广东佛山仓'],
['牛奶', 58.755, '40箱', '广东揭阳仓'],
['威化饼干', 7.385, '285盒', '广西南宁仓'],
['火腿肠', 34.823, '20件', '广西柳州仓'],
['巧克力', 62.648, '30箱', '广东揭阳仓'],
['牛奶', 45.75, '12箱', '广西柳州仓'],
['威化饼干', 5.235, '148盒', '广东佛山仓'],
['火腿肠', 33.736, '28件', '广东佛山仓']
]
goods_df = pd.DataFrame(goods_info) # 通过列表创建DataFrame,列表的元素作为行数据,默认生成从0开始的列名
goods_df
#(1)借助DataFrame()类的另一个参数columns设置列名
# pandas.DataFrame(data,coluumns)
# data:创建DataFrame对象所需的数据,可以为字典、列表;
# columns:设置列索引值(列名),可以为列表;
newgoods_df = pd.DataFrame(goods_info, columns =['a', 'b', 'c','d'] )
newgoods_df
# (2)已经创建好的DataFrame,使用columns属性修改列名
# df.columns = ['a', 'b', 'c']
newgoods_df.columns = ['名称','单价','库存','地址']
newgoods_df
2.数据排序
# 2.数据排序
# 使用sort_values()方法,对指定列进行排序操作
# df.sort_values(by) by可以是列名
newgoods_df
sorted_goods = newgoods_df.sort_values(by='单价') # 对某列数据进行排序,默认升序排序
sorted_goods
newgoods_df['单价'].sort_values() # 提取某列,单独排序
# 使用DataFrame对象调用sort_values()方法时,可以通过参数 by 来指定某一列;而Series对象调用该函数时,函数没有参数by
3.重置索引
# 3.重置索引
# 使用reset_index()方法重置索引
# s/df.reset_index(drop = False)(False保留原索引、True把原索引去掉)
sorted_goods
reset_goods = sorted_goods.reset_index(drop = True)
reset_goods
4.数值四舍五入
# 4.数值四舍五入
# round(number, ndigits = 0) number:需要处理的数据 ndigits:四舍五入要保留的小数位数,默认为0
reset_goods
reset_goods['单价'] = round(reset_goods['单价'], 2)
reset_goods
5.agg()方法 agg()方法对整列数据进行统一操作
# 5.agg()方法 agg()方法对整列数据进行统一操作
# s.agg(func) func可以定义为函数名称,如:new_func
# 定义new_func()函数 功能:传入数据进行切片,切除数据最后一个字符
# 定义函数 new_func()
# 传入自定义的函数时,只需要写上函数名,不需要加上括号以及函数的参数
def new_func(data):
number = data[:-1]
return int(number)
# 函数new_func() 会切除传入数据的最后一个字符,再将切除后的字符串转换为整数型,然后返回该数据。
reset_goods
# 使用agg()方法将列数据传入new_func()函数,并取得返回值
reset_goods['库存'].agg(new_func)
reset_goods['库存'] = reset_goods['库存'].agg(new_func)
reset_goods
6.简单练习
# 6.简单练习
# 计算食品平均价格
goods_mean = reset_goods.groupby('名称')['单价'].mean()
goods_mean
# 分组结果.agg(func)
# func 可以为列名和函数名称(字符串)组成的字典,如:{'column1':'sum',...}
# 字典的键为我们需要操作的列名,如 '单价'、'库存';字典的值为我们需要操作的函数名min、max、sum、mean、count、std
# 定义字典,计算平均单价和库存总量
reset_goods.groupby('名称').agg({'单价':'mean', '库存':'sum'})
dict_2 ={'单价':'mean','库存':'sum'}
reset_goods.groupby('名称').agg(dict_2)
# 定义函数,以替换【数量】列的“-”为 0
def replace_info(data):
if data == '-':
data = 0
return data
总结
提示:眼过千遍不如手过一遍。
2022年5月14日
青海·西宁