Python数据分析之Pandas第二练:十分钟掌握DataFrame运算

liftword3周前 (04-08)技术文章4

背景

在上一篇《Python数据分析之Pandas第一练:十分钟学会创建、查看和选择数据》中,我们练习了Pandas数据对象Series和DataFrame的基础操作,本篇将再用十分钟的时间继续相关运算的练习。

运算

Pandas主要使用值np.nan表示缺失的数据。默认情况下不包含在计算中。这次的练习对象还是使用上篇中生成的df,详细的生成过程可以到上篇文章中回顾。

df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ["E"])
df1
df1.loc[dates[0] : dates[1], "E"] = 1
df1.dropna(how="any")  # 丢弃所有缺少数据的行
df1.fillna(value=5)  # 填充丢失值
pd.isna(df1)  # 获取nan值的布尔判断结果 

df.mean(0)  # 默认值为0,按列进行统计
df.mean(1)  # 1按行进行统计

当运算对象具有不同的维度并且需要形状一致时,Pandas会自动按照指定的维数进行广播.

s = pd.Series([1, 3, 5, np.nan, 6, 8], index=dates).shift(2)
df.sub(s, axis="index")  # 计算df - s
df.apply(np.cumsum)  # 将NumPy的累加函数应用到df上
df.apply(lambda x: x.max() - x.min())  #  计算最大、最小值之差
s.value_counts()  # 统计每类值的频数

str属性中配备了一些序列数据(Series)的字符串处理方法,使得在数组的每个元素上操作时非常简单。需要注意的是,默认情况下,str中的模式匹配通常使用正则表达式(在某些情况下总是使用它们)。

s = pd.Series(["A", "B", "C", "Aaba", "Baca", np.nan, "CABA", "dog", "cat"])
s.str.lower()  # 将s的值转变为小写,空值不生效

Pandas提供了各种功能,可以在join / merge-type操作的情况下将串联和数据框对象与各种索引和关系代数功能的设置逻辑相结合。

df = pd.DataFrame(np.random.randn(10, 4))
pieces = [df[:3], df[3:7], df[7:]]
pd.concat(pieces)
left = pd.DataFrame({"key": ["foo", "foo"], "lval": [1, 2]})
right = pd.DataFrame({"key": ["foo", "foo"], "rval": [4, 5]})
pd.merge(left, right, on="key")
left1 = pd.DataFrame({"key": ["foo", "bar"], "lval": [1, 2]})
right1 = pd.DataFrame({"key": ["foo", "bar"], "rval": [4, 5]})
pd.merge(left1, right1, on="key")

聚合操作涉及到下面步骤中的一个或者多个内容:

  • 按照条件把数据分成多个组
  • 对每个数据组单独用函数处理
  • 把处理后的数据结果整合到一起
df = pd.DataFrame( 
    { 
         "A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo", "foo"], 
         "B": ["one", "one", "two", "three", "two", "two", "one", "three"], 
         "C": np.random.randn(8), 
         "D": np.random.randn(8) 
    }
    )
df.groupby("A").sum()
df.groupby(["A", "B"]).sum()

熟练使用Excel的伙伴们会觉得这个操作跟透视表如出一辙,确实是这样的。

一起练习吧

以上就是这次练习的主要内容,大家一起练习来吧。如有问题可随时留言交流~~~

相关文章

Python数据分析基础与实战

Python 是数据分析领域的首选工具之一,因其丰富的库和易用性广受欢迎。以下是 Python 数据分析的核心内容和学习路径:1. 基础工具库NumPy核心功能:多维数组(ndarray)操作、数学运...

极简Python数据分析入门:从工具准备到建模实战全攻略!

以下是一份极简Python数据分析入门指南,帮助新手快速掌握核心技能:1. 工具准备安装必备库:推荐使用 Jupyter Notebook(交互式编程环境)进行数据分析。2. 数据加载使用 panda...

三天带你轻松学会python数据分析基础,拿走不谢

Python应用广泛,尤其在数据处理方面功能强大,这本书讲述了数据的抓取、处理、可视化。【文末领取】获取方式:...

7天带你轻松学会python数据分析基础,拿走不谢

Python应用广泛,尤其在数据处理方面功能强大,这本书讲述了数据的抓取、处理、可视化。【文末领取】获取方式:...

「Python数据分析」Pandas基础,通过索引选择数据

原始数据处理过程1、通过函数,生成上图所示的原始数据集2、选择某一单元格中的值3、交换数据集中A、B列的值4、选择A列和B列,形成新的数据集处理过程1新建文件夹和Python笔记本源程序,导入pand...

小白零基础学习路线,完整的自学python数据分析的学习路线

数据分析师已经存在多年了,但是,对该职业的需求从2018年开始,对数据分析师的需求猛增,目前数据分析师的前景已然非常好!预计到2025年,「数据分析师」将成为需求最大的工作之一。由于这种现象,我们看到...