pandas基础数据结构

一、数据框计算

(一)基础运算函数
方法 描述
add 加(+)
sub 减(-)
mul 乘(*)
div 除(/)
floordiv 整除(//)
pow 幂次方(**)
(二)df之间计算
import pandas as pd
import numpy as np
df1=pd.DataFrame(np.ones((2,2)),columns=list("ab"))
df2=pd.DataFrame(np.ones((3,3)),columns=list("abc"))
#加法
df1+df2

在这里插入图片描述
  运算会对两个df的行列索引进行匹配,运算结果的索引取并集,非公共索引部分取NaN。

(三)df和series计算
  • df和series计算,默认将series的索引和df的列索引进行匹配,并且在行上进行广播。
#df和series计算,会广播
s=df2.iloc[:,0]
s+df2

在这里插入图片描述

#df和series计算,会广播
s2=df2.iloc[0,:]
s2+df2

在这里插入图片描述

  • 通过改变参数可以改变广播方式
#在行上匹配,在列上广播
df2.add(s,axis="index")

在这里插入图片描述
注意:使用算术符号(例如“+”),无法指定广播机制等。

(四)显性函数运算
df1.add(other, axis='columns', level=None, fill_value=None)
  • other 另一个数据
  • axis df和series默认列上匹配,行上广播
  • fill_value 可指定填充运算结果为NaN的值

二、函数的映射

(一)df.apply函数
1.功能

将函数作用在行/列上,并沿着列/行“广播”。

2.参数
df1.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
  • func 指函数名,可以是自定义函数也可以是系统函数;
  • axis=0 参数为0时表示在行上使用函数,并在列的方向上广播。
3.例子

求每行的最大值

df1=pd.DataFrame(np.random.uniform(-10,10,size=(4,4)))
#
	0	          1	          2	             3
0	3.341642	-0.575784	-5.848210	2.755888
1	1.593945	-5.830961	-9.627209	2.675590
2	-9.399005	8.067327	5.500567	-9.225596
3	-0.994930	9.895505	-9.301169	0.520210
df1.apply(max,axis=1)
#
0    3.341642
1    2.675590
2    8.067327
3    9.895505
dtype: float64
4.df.applymap函数

tips 内置函数一般均可指定作用在列上或行上(默认axis=0,沿着0轴作用,作用效果为列)

df1.min(axis=1)

↑取每一行的最小值

a) 功能

将函数应用到每个数字上。

b) 参数
df1.applymap(func)
c) 例子
def fun(x):
    return round(x,ndigits=1)
df1.applymap(fun)

和df1对比

三、排序

(一)按索引排序

困了~ 参数与下一节类似

df2.sort_index(axis=0,level=None,ascending=True,inplace=False,kind='quicksort',na_position='last',sort_remaining=True,ignore_index: bool = False)
(二)按数据排序
df1.sort_values(by,axis=0,ascending=True,inplace=False,kind='quicksort',na_position='last',ignore_index=False)
1.参数
  • by 参数为字符串或字符串列表(行或列标签),表示以对应的行/列作为排序依据,当by为字符串列表,排序依据按字符串中标签的先后顺序;
  • axis 沿0轴进行排序,即通常的对行排序;
  • ascending 升序(依据为数字大小或asicc)
  • ingore_index index跟随数据移动,若为True则对排序后的数据重新0,1,2…n-1,进行reindex。
2.例子
  • 数据
df2=pd.DataFrame
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值