Python数据分析与展示:pandas算术和比较运算-11

简介: Python数据分析与展示:pandas算术和比较运算-11

术运算法则

算术运算根据行列索引,补齐后运算,

运算默认产生浮点数 补齐时缺项填充NaN(空值)

二维和一维、一维和零维间为广播运算

采用+ ‐* /符号进行的二元运算产生新的对象


方法形式的运算

image.png

比较运算法则

比较运算只能比较相同索引的元素,不进行补齐

二维和一维、一维和零维间为广播运算

采用> < >= <= == !=等符号进行的二元运算产生布尔对象


pandas小结

Series = 索引+ 一维数据

DataFrame= 行列索引+ 二维数据


重新索引、数据删除、算术运算、比较运算


像对待单一数据一样对待Series和DataFrame对象

# -*- coding: utf-8 -*-
# @File    : pandas_demo.py
# @Date    : 2018-05-20
# pandas数据类型的算术运算
import pandas as pd
import numpy as np
# 数据准备
a = pd.DataFrame(np.arange(12).reshape(3, 4))
print(a)
"""
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
"""
b = pd.DataFrame(np.arange(20).reshape(4, 5))
print(b)
"""
    0   1   2   3   4
0   0   1   2   3   4
1   5   6   7   8   9
2  10  11  12  13  14
3  15  16  17  18  19
"""
# 算术运算
# 自动补齐,缺项补NaN
c = a + b
print(c)
"""
      0     1     2     3   4
0   0.0   2.0   4.0   6.0 NaN
1   9.0  11.0  13.0  15.0 NaN
2  18.0  20.0  22.0  24.0 NaN
3   NaN   NaN   NaN   NaN NaN
"""
d = a * b
print(d)
"""
      0     1      2      3   4
0   0.0   1.0    4.0    9.0 NaN
1  20.0  30.0   42.0   56.0 NaN
2  80.0  99.0  120.0  143.0 NaN
3   NaN   NaN    NaN    NaN NaN
"""
# fill_value参数替代NaN,替代后参与运算
e = a.add(b, fill_value=10)
print(e)
"""
      0     1     2     3     4
0   0.0   2.0   4.0   6.0  14.0
1   9.0  11.0  13.0  15.0  19.0
2  18.0  20.0  22.0  24.0  24.0
3  25.0  26.0  27.0  28.0  29.0
"""
f = a.mul(b, fill_value=10)
print(f)
"""
       0      1      2      3      4
0    0.0    1.0    4.0    9.0   40.0
1   20.0   30.0   42.0   56.0   90.0
2   80.0   99.0  120.0  143.0  140.0
3  150.0  160.0  170.0  180.0  190.0
"""
# 不同维度间为广播运算,一维Series默认在轴1参与运算
s = pd.Series(np.arange(10, 15, 1))
print(s)
"""
0    10
1    11
2    12
3    13
4    14
dtype: int32
"""
s1 = s -10
print(s1)
"""
0    0
1    1
2    2
3    3
4    4
dtype: int32
"""
b2 = b - s
print(b2)
"""
    0   1   2   3   4
0 -10 -10 -10 -10 -10
1  -5  -5  -5  -5  -5
2   0   0   0   0   0
3   5   5   5   5   5
"""
# 使用运算方法可以令一维Series参与轴0运算
s = pd.Series(np.arange(4))
print(s)
"""
0    0
1    1
2    2
3    3
dtype: int32
"""
b3 = b.sub(s, axis=0)
print(b3)
"""
    0   1   2   3   4
0   0   1   2   3   4
1   4   5   6   7   8
2   8   9  10  11  12
3  12  13  14  15  16
"""
# 比较运算
a = pd.DataFrame(np.arange(12).reshape(3, 4))
print(a)
"""
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
"""
b = pd.DataFrame(np.arange(12, 0, -1).reshape(3, 4))
print(b)
"""
    0   1   2  3
0  12  11  10  9
1   8   7   6  5
2   4   3   2  1
"""
# 同维度运算,尺寸一致
c = a > b
print(c)
"""
       0      1      2      3
0  False  False  False  False
1  False  False  False   True
2   True   True   True   True
"""
d = a == b
print(d)
"""
       0      1      2      3
0  False  False  False  False
1  False  False   True  False
2  False  False  False  False
"""
# 不同维度,广播运算,默认在1轴
s = pd.Series(np.arange(4))
print(s)
"""
0    0
1    1
2    2
3    3
dtype: int32
"""
print(a > s)
"""
       0      1      2      3
0  False  False  False  False
1   True   True   True   True
2   True   True   True   True
"""
print(s > 0)
"""
0    False
1     True
2     True
3     True
dtype: bool
"""
相关文章
|
3天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by=&#39;A&#39;, ascending=False)`。`rank()`函数用于计算排名,如`df[&#39;A&#39;].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=[&#39;A&#39;, &#39;B&#39;], ascending=[True, False])`和分别对&#39;A&#39;、&#39;B&#39;列排名。
14 2
|
4天前
|
索引 Python
如何在Python中使用Pandas库进行季节性调整?
在Python中使用Pandas和Statsmodels进行季节性调整的步骤包括:导入pandas和seasonal_decompose模块,准备时间序列DataFrame,调用`seasonal_decompose()`函数分解数据为趋势、季节性和残差,可选地绘制图表分析,以及根据需求去除季节性影响(如将原始数据减去季节性成分)。这是对时间序列数据进行季节性分析的基础流程。
19 2
|
2天前
|
数据挖掘 数据处理 索引
python常用pandas函数nlargest / nsmallest及其手动实现
python常用pandas函数nlargest / nsmallest及其手动实现
16 0
|
2天前
|
数据挖掘 数据处理 索引
如何使用Python的Pandas库进行数据筛选和过滤?
Pandas是Python数据分析的核心库,提供DataFrame数据结构。基本步骤包括导入库、创建DataFrame及进行数据筛选。示例代码展示了如何通过布尔索引、`query()`和`loc[]`方法筛选`Age`大于19的记录。
10 0
|
4天前
|
Python
如何使用Python的Pandas库进行数据缺失值处理?
Pandas在Python中提供多种处理缺失值的方法:1) 使用`isnull()`检查;2) `dropna()`删除含缺失值的行或列;3) `fillna()`用常数、前后值填充;4) `interpolate()`进行插值填充。根据需求选择合适的方法处理数据缺失。
38 9
|
6天前
|
索引 Python
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
使用Pandas在Python中创建数据透视表的步骤包括:安装Pandas库,导入它,创建或读取数据(如DataFrame),使用`pd.pivot_table()`指定数据框、行索引、列索引和值,计算聚合函数(如平均分),并可打印或保存结果到文件。这允许对数据进行高效汇总和分析。
10 2
|
6天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
12 1
|
7天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title(&#39;简单折线图&#39;) plt.xlabel(&#39;X轴&#39;) plt.ylabel(&#39;Y轴&#39;) plt.show() ```
12 1
|
7天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
13 1
|
9天前
|
供应链 搜索推荐 数据挖掘
Pandas实战案例:电商数据分析的实践与挑战
【4月更文挑战第16天】本文通过一个电商数据分析案例展示了Pandas在处理销售数据、用户行为分析及商品销售趋势预测中的应用。在数据准备与清洗阶段,Pandas用于处理缺失值、重复值。接着,通过用户购买行为和商品销售趋势分析,构建用户画像并预测销售趋势。实践中遇到的大数据量和数据多样性挑战,通过分布式计算和数据标准化解决。未来将继续深入研究Pandas与其他先进技术的结合,提升决策支持能力。