pandas是一个基于NumPy的模块,它的功能在于数据的筛选清洗和处理,与NumPy模块相比,pandas模块更擅长处理二维数据。pandas模块主要有序列(Series)和数据框(DataFrame)两种数据结构。
1.1安装pandas模块
pip install pandas
1.2导入pandas模块
#导入了numpy,并使用"np"作为该模块的简写
import pandas as pd
1.3创建序列
Series,中文叫做序列,pandas模块的一种数据类型。是一个一维的、带索引(index)的数组对象。
Series和字典,有一定的相似之处。
一个字典中,通过键(key),可以访问所对应的值(value);
一个Series的索引(index)在左边,值(values)在右边,可以通过左边的索引index访问到右边对应的值values。
import pandas as pd
info=pd.Series([100,200,300,400,500])#序列的索引值默认从0开始的数字,可以不设置
print(info)
#输出结果,返回:索引,值,数据类型dtype
0 100
1 200
2 300
3 400
4 500
dtype: int64
info=pd.Series([100,200,300,400,500],index=['a','b','c','d','e'])#可以设置序列的索引值index
#输出结果,返回:索引,值,数据类型dtype
print(info)
a 100
b 200
c 300
d 400
e 500
dtype: int64
print(info.dtype)
#int64
print(info.index)
#Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
print(info.values)#以数组的形式返回了变量info的值values。
#[100 200 300 400 500]
和字典不同的是,Series中的数据是有顺序的,除了直接通过index访问外,还能通过0,1,2这样的位置进行访问
import pandas as pd
#创建序列
GDP = [80855, 77388, 68024, 47251, 40471]
city = ['GD','JS','SD','ZJ','HN']
info = pd.Series(GDP,index = city)
#位置索引访问
info[0]
#输出: 80855
info[0:3]
#输出
GD 80855
JS 77388
SD 68024
dtype: int64
#索引标签访问
info['GD']
#输出:80855
1.4 序列数据统计
#导入numpy
import numpy as np
#依次创建年龄和年收入对应的数组
all_age=[23,32,21,22,25,34,24]
all_income=[154,143,114,145,132,267,198]
import pandas as pd
all_income=pd.Series(all_income,index=all_age)
#选择目标用户21-25岁人群
age=[]
for i in all_age:
if i>=21 and i<=25:
age.append(i)
income=all_income[age]
print(age)
print(income)
# 依次计算年龄的平均值和年收入的平均值
age_media=np.median(age)
income_media=np.median(income)
print(age_media)
print(income_media)
# 依次计算年龄的中位数和年收入的中位数
age_mean=np.mean(age)
income_mean=np.mean(income)
print(age_mean)
print(income_mean)
# TODO 根据公式,计算预期投入额=年龄中位数+收入中位数)
invest=(age_media+income_media)*0.12
# TODO 根据题目要求,格式化输出结果
print(f"目标客户为21岁-25岁年龄段客户,平均年龄为{age_mean}岁,平均年收入为{income_mean}K,年龄中位数为{age_media}岁,年收入中位数为{income_media}K,预期投入额为{invest}K")