【机器学习】【pandas】018_pandas排序、运算、绘图

一、排序

排序有两种形式,一种对索引排序,一种对内容排序

1. DataFrame排序

· 使用df.sort_values(by=, ascending=)

        对单个键或者多个键进行排序(列);

        参数:

        · by:指定排序参考的键;

        · ascending:默认升序,值为False表降序,值为True表升序;

# 创建10行5列的数据,数据范围40~100
data = pd.DataFrame(np.random.randint(40,100,(10,5)))
# 按列“0”一列进行排序,ascending表示升序排序
data = data.sort_values(by=0, ascending=True)
print(data)
# 按照多个键进行排序
data = data.sort_values(by=[0,1,2])
print(data)

· 使用df.sort_index()

        对索引进行排序,默认顺序升序,从小到大(行);

2. Series排序

· 使用series.sort_values(ascending=True)

        对Series的唯一一列进行排序,不需要参数;

· 使用series.sort_index()

        对索引进行排序,默认顺序升序,从小到大(唯一一行);

二、DataFrame运算

1. 算术运算

· data[col].add(num)

        对某一列所有元素相加num

· data[col].sub(num)

        对某一列的所有元素相减num

# 相加与相减运算
data = data[1].add(1)
print(data)
data = data[3].sub(2)
print(data)

2. 逻辑运算

· data[col] > num

        对某一列所有元素进行逻辑判断,赋值为True或False

· 运算函数:

        · query(expr)

           expr:要查询的字符串

        通过query,可以让逻辑赋值的过程更方便简单

# 判断data数据中open一列大于22小于24的元素
data.query("open<24 & open>22").head()

        · isin(values)

        指定某个值进行判断,从而进行筛选操作

# 判断open列的值是否是23.53或23.85
data[data['open'].isin([23.53, 23.85])]

3. 统计运算

· 综合分析:describe

  describe()函数能够直接得到许多统计结果:

        · count

        · mean(平均值)

        · std(标准差)

        · min

        · max

data.describe()

· 统计函数

除describe显示的之外,还可以显示这些数值:

        · sum(求和)

        · prod(求乘积)

        · median(中位数)

        · mode(众数)

        · var(方差)

        · idxmax / idxmin(最大值索引和最小值索引)

对于单个函数去进行统计的时候,坐标轴还是默认按照“列”(axis=0,default)进行统计的;如果要对“行index”进行统计,需要指定(axis=1)

· 累计统计函数

        · cumsum:计算前1/2/3/.../n个数的和;

        · cummax:计算前1/2/3/.../n个数的最大值;

        · cummin:计算前1/2/3/.../n个数的最小值;

        · cumprod:计算前1/2/3/.../n个数的乘积;

# 统计函数操作
# 1.排序
data = data.sort_index()
# 2.累计求和
# 首先取data的change一列
stock_rise = data['change']
# 对该列进行求和并打印
print(stock_rise.cumsum())
# 3.显示
# plot显示图形
stock_rise.cumsum().plot()
plt.show()

4. 自定义运算

· apply(func, axis=0)

        func:自定义函数;

        axis=0:默认为列,改为1为对行运算;

如图所示,定义一个对两个列,分别求最大值-最小值的函数:

三、pandas绘图

绘图函数:

· DataFrame.plot(kind='line')

· Series.plot(kind='line')

※ plot聚合了所有类图形,kind参数尤为重要,用来指定要绘制的图形类型,默认折线图

· kind参数的取值:

        'line':折线图;

        'bar':条形图;

        'barh':横向条形图;

        'hist':直方图;

        'pie':饼图;

        'scatter':散点图;

仍然运用Matplotlib的相关知识进行绘图,绘图步骤基本和Matplotlib绘图一致。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值