pandas算术 算术运算与数据对齐

发布时间 2023-10-26 22:56:03作者: YaYa000
# range()打出来的相当于是数列,arange()打出来的相当于是数组
obj_one=pd.Series(range(10,13),index=range(3))
print(obj_one)
obj_two=pd.Series(range(10,15),index=range(5))
print(obj_two)
# 两数相加,没有对应值的话结果就会是NaN
obj_one+obj_two
# 使用add(),可以确定填充值,这里填充值是加在obj_one上面
obj_one.add(obj_two,fill_value=1)
​
​
# -------------------------------下面是输出结果--------------------------------
0    10
1    11
2    12
dtype: int64
---------------------------------
0    10
1    11
2    12
3    13
4    14
dtype: int64
---------------------------------
0    20.0
1    22.0
2    24.0
3    14.0
4    15.0
dtype: float64

 

数据的排序(按索引排序和按值排序)

下面是按索引排序

# 按索引排序
#sort_index(axis=0,level=None,ascending=True,inplace=False,kind='quicksort',na_position='last',sort_remainin#g=True)
# level:若不为None,则对指定索引级别的值进行排序
# ascending:是否升序排序
# inplace:默认为False,表示对数据进行排序,不代替原有数据
# kind:默认为False,表示对数据表进行排序
# na_position:表示把空值放到最后面
# Series对象的值索引
ser_obj=pd.Series(range(5),index=[5,3,2,1,4])
print(ser_obj)
# 按索引值排序
print(ser_obj.sort_index())
# 按索引降序排列
ser_obj.sort_index(ascending=False)
​
​
# -----------------------------------下面是输出结果-----------------------------------
5    0
3    1
2    2
1    3
4    4
dtype: int64
-----------------------------
1    3
2    2
3    1
4    4
5    0
dtype: int64
-----------------------------
5    0
4    4
3    1
2    2
1    3
dtype: int64
 

 

 

下面是按值排序

# pandas中数据排序的方法是sort_values()
# sort_values(by,axis=0,ascending=True,inplace=False,kind='quicksort',na_position='last')
# by表示排序的列
#  na_position只有两个值first和last,first表示空值放在前面,last表示空值放在后面
# ascending指是否按指定列进行升序排序
# inplace表示是否用排序后的数据集替换原有数据
# 以上参数均为默认参数
# 创建一个Series对象
obj_three=pd.Series([0.4,np.nan,0.5,np.nan])
print(obj_three)
# 对该数组进行排序
print(obj_three.sort_values())
# 创建一个DataFrame对象
obj_four=pd.DataFrame([[0.1,0.4,0.2,0.5],
                      [0.6,-0.5,0.6,0.2],
                      [0.2,0.3,0.4,0.5],
                      [-0.9,0.8,-.9,1.0]])
print(obj_four)
# 对obj_four进行排序(按第三列进行排序)
obj_four.sort_values(by=3)
​
​
# ---------------------------------下面是输出结果---------------------------------
0    0.4
1    NaN
2    0.5
3    NaN
dtype: float64
----------------------------------
0    0.4
2    0.5
1    NaN
3    NaN
dtype: float64
----------------------------------
     0    1    2    3
0  0.1  0.4  0.2  0.5
1  0.6 -0.5  0.6  0.2
2  0.2  0.3  0.4  0.5
3 -0.9  0.8 -0.9  1.0
     0     1     2       3
1   0.6   -0.5   0.6    0.2
0   0.1   0.4    0.2    0.5
2   0.2   0.3    0.4    0.5
3  -0.9   0.8    -0.9   1.0

 

 

 

统计计算与描述

data_1 = pd.DataFrame(np.arange(12).reshape(3,4),columns=['a','b','c','d'])
data_1
​
​
# --------------------------下面是输出结果----------------------------
​
    a   b   c   d
0   0   1   2   3
1   4   5   6   7
2   8   9   10  11
# 默认按0轴进行相加
data_1.sum()
# 默认按0轴进行找最大值
data_1.max()
# 按1轴找最小值
data_1.min(axis=1)
# 输出多个统计指标
data_1.describe()
​
​
# -----------------------------下面是输出结果-----------------------------
a    12
b    15
c    18
d    21
dtype: int64
--------------------------------
a     8
b     9
c    10
d    11
dtype: int32
---------------------------------
0    0
1    4
2    8
dtype: int32
---------------------------------
​
           a    b    c     d
count     3.0   3.0  3.0  3.0
mean      4.0   5.0  6.0  7.0
std       4.0   4.0  4.0  4.0
min       0.0   1.0  2.0  3.0
25%       2.0   3.0  4.0  5.0
50%       4.0   5.0  6.0  7.0
75%       6.0   7.0  8.0  9.0
max       8.0   9.0  10.0 11.0

 

 

常用的统计函数

函数名称说明
sum 计算和
mean 计算均值
median 计算中位数
max,min 计算最大值,最小值
idxmax,idxmin 获取索引最大值和最小值
count 计算非空值的个数
head 获取前N个值
var 计算样本方差
std 计算标准差
describe 对数据进行汇总统计