一、pandas基本数据
1、查看数据
用户数据记录在文件Nowcoder.csv中,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID,Level,Achievement
获取该文件中每一列的列名,以及该文件包含了多少位用户的数据。数据集直接从当前目录下的Nowcoder.csv文件中读取。
第一行以列表的形式输出文件所有的列名,第二行直接输出总用户数。
import pandas as pd
df = pd.read_csv("Nowcoder.csv", sep=",", dtype=object)
print([column for column in df])
print(df.shape([0]))
2、查看其中一类数据
某线下店铺的销售记录在Order.csv中,包含如下字段(字段与字段之间以逗号间隔):
order_number:订单号
product_type:产品类型,包括phone、pad、watch等
price:价格
time:购买时间
假如店长想要查看手机订单(phone)的全部信息,使用pandas帮他查一下
数据集从当前目录下的Order.csv文件中读取。
输出产品类型为phone的全部信息,包括行号。
import pandas as pd
df = pd.read_csv("Order.csv", sep=",", dtype=object)
phone1 = df.loc[df["product_type"] == "phone"] #或者直接print(df[df["product_type"] == "phone"])
print(phone1)
二、pandas数据筛选
1、数据筛选
一个Nowcoder.csv文件,包含如下字段(字段与字段之间以逗号间隔):
ID:工号;working_years:工龄;level:级别;language:使用语言;salary:工资
需要筛选出使用C语言的资深员工(工龄超过或等于8年)的全部数据。输出数据集中工龄不小于8年的C语言员工的全部信息,包括行号。
import pandas as pd
df = pd.read_csv("Nowcoder.csv", sep=",")
result = df.loc[(df["working_years"] >= 8) & (df["language"] == "C")]
print(result)
2、筛选订单
现有一个Order.csv文件,它记录了某商城近一周的订单销售数据数据,包含如下字段(字段与字段之间以逗号间隔):
order_num:订单号
price:商品价格
date:销售日期
shop_name:店铺名字
想要知道618那天所有销售的店铺及商品价格信息。数据集直接从当前目录下的Order.csv文件中读取。输出该数据集中销售时间为618当天对应的的价格和店铺信息,包括行号。
#导入模块
import pandas as pd
#读取文件
a = pd.read_csv('Order.csv',sep=',',dtype=object)
#输出列a[['price','shop_name']],再将时间作为条件[a.date == '2022/6/18'],添加到后面
s = a[['price','shop_name']][a.date == '2022/6/18']
#输出结果
print(s)
3、快递信息
现有一个Nowcoder.csv文件,记录了某个快递站点近期寄送的快递信息,包含如下字段(字段与字段之间以逗号间隔):
order_num:订单号
Postage:运费
Date:寄送日期
Destination:目的地
phone_tail_number:手机尾号
Type:快递类型
网点人员想知道618当天快递类型为1的快递都送往了哪些地方。数据集直接从当前目录下的Nowcoder.csv文件中读取。输出该数据集中日期为2022/6/18且类型为1的快递的目的地信息,包括行号。
#导入模块
import pandas as pd
#读取文件
df = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
#读取列名df['Destination'],将多个条件(df.Date == '2022/6/18')& (df.Type == '1')当作参放在后面
s = df['Destination'][(df.Date == '2022/6/18')& (df.Type == '1')]
#输出
print(s)
三、pandas数学函数
1、统计销售额
现有一个Order.csv文件,它记录了某商城近一周的订单销售数据数据,包含如下字段(字段与字段之间以逗号间隔):
order_num:订单号
price:商品价格
date:销售日期
shop_name:店铺名字
618已过,数据分析员开始统计销售额,找出这个文件中618当天的销售总额以及整个618一周内各个店铺的销售订单数。
数据集直接从当前目录下的Order.csv文件中读取。第一行直接输出618当天销售的价格之和。后续输出每个店铺各自的订单数。
import pandas as pd
df = pd.read_csv("Order.csv", sep=",")
print(sum(df[df["date"] == "2022/6/18"]["price"]))
print(df["shop_name"].value_counts())
2、用户数据分析
现有一个Tk.csv文件,记录了短视频平台部分用户的数据,包含如下字段(字段与字段之间以逗号间隔):
ID:账号
Follows:关注人数
Fans:粉丝数
Cost:商城消费总金额
Days:最近一月活跃天数
Number_of_vedios:发布视频数
想要知道这些用户中最近一月活跃天数的中位数是哪个?最多的粉丝数有多少?最近一月有活跃的人中消费的平均水平是多少?
数据集直接从当前目录下的Tk.csv文件中读取。分三行直接输出三个数据,依次是最近一月活跃天数的中位数(不用处理小数位)、最多粉丝数(保留整数)、最近一月有活跃的人中消费的平均值(保留2位小数)。
import pandas as pd
df = pd.read_csv("Tk.csv", sep=",")
print(df["Days"].median())
print(df["Fans"].max())
print(round(df[df.Days > 0]["Cost"].mean(), 2))
四、pandas分组合并
1、不同等级会员的购买力
现有一个Order.csv文件,记录了某线上商城近一周的订单销售数据数据,包含如下字段(字段与字段之间以逗号间隔):
order_num:订单号
price:商品价格
date:销售日期
shop_name:店铺名字
VIP_level:会员等级
618一周之内到处都有促销,各类会员都展现了自己的购买力,现在请统计一下不同等级的会员平均购买了多少钱的东西,以及不同等级的会员都光顾了多少家不同的店铺。
数据集直接从当前目录下的Order.csv文件中读取。首先输出各个等级的会员都平均消费了多少,不用处理小数位保留。然后输出各个等级的会员光顾了多少家不同的店铺数量。
import pandas as pd
data = pd.read_csv("./Order.csv", dtype=object)
e = data.groupby("VIP_level")# 按照VIP等级分组
print(e.price.mean())# 输出每个VIP等级的消费均值
print(e.shop_name.nunique())# 输出每个VIP等级去过的不同店个数
2、数据关联
现有一个Tk.csv文件,记录了某短视频部分用户的基本信息,包含如下字段(字段与字段之间以逗号间隔):
ID:账号
Follows:关注人数
Fans:粉丝数
Cost:总消费金额
Days:最近一月活跃天数
Number_of_vedios:上传视频数量
另外一个Shop.csv文件记录了用户在平台商城的消费情况,包含如下字段(字段与字段之间以逗号间隔):
ID:账号
order_num:订单号
price:售出商品价格
date:销售日期
shop_name:店铺名称
VIP_level:用户会员等级
分析短视频用户消费行为,需要统计粉丝数大于10000的用户都消费了哪些店铺时,该如何输出?(同一用户两个ID相同)数据集直接从当前目录下的Tk.csv文件和Shop.csv中读取。输出粉丝数大于10000的用户消费过的店铺,输出包括行号。
import pandas as pd
df_tk = pd.read_csv('Tk.csv', sep=',')
df_shop = pd.read_csv('Shop.csv', sep=',')
df = df_tk.merge(df_shop)
print(df[df['Fans']>10000]['shop_name'])
五、pandas清洗与排序
1、清洗——去除空值
现有一个Shop.csv文件,它记录了某个店铺网上销售记录,包含如下字段(字段与字段之间以逗号间隔):
order_num:订单号
payment:实际付款金额
date:订单日期
VIP_level:用户会员等级
因为是网上在线销售,有些时候用户没有付款但也没有取消订单,导致订单过期,实际付款金额显示为空值,这样的数据非常不便于财务统计销售金额信息,需要去掉所有含有空值的行。
数据集直接从当前目录下的Shop.csv文件中读取。
输出清洗后的完整数据集,包括原始行号。
import pandas as pd
a=pd.read_csv('Shop.csv',sep=',')
print(a.dropna())
2、排序
现有一个Order.csv文件,它记录了双十一某些店铺的订单数据,包含如下字段(字段与字段之间以逗号间隔):
order_num:订单号
price:成交价格
shop_name:店铺名字
VIP_level:用户会员等级
想知道哪家店铺是双十一的销冠,需要将所有店铺的名字按照总销售额从高到低排序。
数据集直接从当前目录下的Order.csv文件中读取。
输出店铺的名字及各自的总销售额,按照销售额排序。
import pandas as pd
a = pd.read_csv("Order.csv", sep=",")
ab = a.groupby(by="shop_name").price.agg(["sum"])
print(ab.sort_values(by="sum", ascending=False))