喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。
亲爱的数据探索者们,你们好!如果你对挖掘数据的深层含义充满好奇,那么这篇文章将是你的理想指南。请跟随我一起,我们将深入探索Python中的pandas库,这是数据分析的瑞士军刀。
首先,你需要先安装Python程序和开发环境:
「Python3.11.0」手把手教你安装最新版Python运行环境
Python启航:30天编程速成之旅(第2天)-IDE安装
【Python教程】JupyterLab 开发环境安装
在上一次的课程中,我们一起探索了如何处理缺失数据以及进行基本的数据操作。今天,我将继续带领大家深入学习如何使用 Pandas 进行数据统计分析、自定义函数的应用以及字符串处理技巧。
统计
首先,让我们来看一看如何在排除缺失数据的情况下进行统计分析。我们将演示如何计算数据框中各列的平均值,以及如何按照行来计算平均值。
计算每列的平均值
首先,我们需要创建一个包含随机数据的 DataFrame。这里,我们将使用 Pandas 提供的 date_range 函数来生成一个日期范围,然后结合 Numpy 生成的随机数来构建 DataFrame。
import pandas as pd
import numpy as np
# 使用pandas的date_range函数创建一个包含连续日期的PeriodRange对象。
# 这里从"20241001"(2024年10月1日)开始,创建7个连续日期。
my_date = pd.date_range("20241001", periods=7)
# 使用numpy的randn函数生成一个7行4列的随机数数组。
# 然后使用这些随机数和之前创建的日期索引来创建一个DataFrame。
# 数据框的列标签设置为中文'第一次', '第二次', '第三次', '第四次'。
df = pd.DataFrame(np.random.randn(7, 4), index=my_date, columns=['第一次', '第二次', '第三次', '第四次'])
# 计算每列的平均值
df.mean()
计算每行的平均值
同样地,我们也可以方便地计算每行的平均值:
# 计算每行的平均值
df.mean(axis=1)
当使用具有不同索引或列的另一个 Series 或 DataFrame 进行操作时,结果将会按照索引或列标签的并集对齐。此外,Pandas 会在指定的维度上自动广播,并使用 np.nan 填充那些无法对齐的位置。
让我们通过一个具体的例子来说明这一点:
在这个例子中,我们创建了一个新的 Series s,其中包含了一些数值和一个 np.nan。通过调用 shift(1) 方法,我们将索引向后移动了一个位置。这意味着原始序列中的第一个元素将会变成 np.nan,因为没有更早的数据可以填充这个位置。
输出的 Series 将会像这样:
s = pd.Series([1, 2, 3, np.nan, 4, 5, 6], index=my_date).shift(1)
s
用户定义的函数
Pandas 的 DataFrame 提供了 .agg() 和 .transform() 方法,允许我们应用自定义的函数来对数据进行聚合或转换。
df.agg(lambda x: np.mean(x) * 2)
df.transform(lambda x: x * 10)
值计数
如果我们想统计某个 Series 中各个唯一值出现的次数,可以使用 value_counts() 方法:
df.value_counts()
字符串方法
Pandas 的 Series 类型内置了许多方便的字符串处理方法,这些方法可以直接作用于 Series 的每一个元素上。例如,我们可以轻松地将所有字符串转换成小写:
s = pd.Series(["fENG", "a", "A", "AAbb", np.nan, "CHINA", "cHINA", "China"])
s.str.lower()
通过上述示例,我们可以看到 Pandas 提供了多么强大的数据分析能力。无论是基础的数值计算还是复杂的字符串处理,Pandas 都能帮助我们高效地完成任务。希望今天的分享能让大家对 Python 数据处理有更深的理解。
喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。