Python 教程之数据分析(4)—— 使用 Python 进行数据分析和可视化

举报
海拥 发表于 2023/03/28 23:39:08 2023/03/28
【摘要】 Python 是一种用于进行数据分析的出色语言,主要是因为以数据为中心的 Python 包的奇妙生态系统。Pandas就是其中之一,它使导入和分析数据变得更加容易。在本文中,我使用 Pandas 分析了来自流行的“statweb.stanford.edu”网站的联合国公共数据集的 Country Data.csv 文件中的数据。在分析印度国家数据时,我介绍了 Pandas 的关键概念如下。在...

Python 是一种用于进行数据分析的出色语言,主要是因为以数据为中心的 Python 包的奇妙生态系统。Pandas就是其中之一,它使导入和分析数据变得更加容易。在本文中,我使用 Pandas 分析了来自流行的“statweb.stanford.edu”网站的联合国公共数据集的 Country Data.csv 文件中的数据。
在分析印度国家数据时,我介绍了 Pandas 的关键概念如下。在阅读本文之前,请大致了解 matplotlib 和 csv 的基础知识。

安装
pandas 最简单的方法是使用 pip:

pip install pandas

或者,从这里下载

在 Pandas 中创建数据框

数据框的创建是通过使用pd.Series方法将多个系列传递给 DataFrame 类来完成的。在这里,它传入两个 Series 对象,s1 作为第一行,s2 作为第二行。
例子:

# 将两个系列分配给 s1 和 s2
s1 = pd.Series([1,2])
s2 = pd.Series(["Ashish", "Sid"])
# 将系列对象构建为数据
df = pd.DataFrame([s1,s2])
# 显示数据框
df

# 以另一种方式获取索引和列值的数据框架
dframe = pd.DataFrame([[1,2],["Ashish", "Sid"]],
		index=["r1", "r2"],
		columns=["c1", "c2"])
dframe

# 以另一种方式构建类似字典的容器
dframe = pd.DataFrame({
		"c1": [1, "Ashish"],
		"c2": [2, "Sid"]})
dframe

输出:

image.png

image.png

image.png

使用 Pandas 导入数据

第一步是读取数据。数据存储为逗号分隔值或 csv 文件,其中每一行由新行分隔,每一列由逗号 (,) 分隔。为了能够在 Python 中处理数据,需要将 csv 文件读入 Pandas DataFrame。DataFrame 是一种表示和处理表格数据的方法。表格数据有行和列,就像这个csv 文件一样(点击下载)。
例子:

# 导入pandas库,重命名为pd
import pandas as pd

# 将 IND_data.csv 读入 DataFrame,分配给 df
df = pd.read_csv("IND_data.csv")

# 默认打印 DataFrame 的前 5 行
df.head()

# 打印编号 DataFrame 的行数和列数
df.shape

输出:

image.png

29,10

使用 Pandas 索引 DataFrame

可以使用pandas.DataFrame.iloc方法进行索引。iloc 方法允许按位置检索尽可能多的行和列。
例子:

# 打印前 5 行和复制 df.head() 的每一列
df.iloc[0:5,:]
# 打印整行和整列
df.iloc[:,:]
# 从第 5 行和前 5 列打印
df.iloc[5:,:5]

在 Pandas 中使用标签进行索引

可以使用pandas.DataFrame.loc方法对标签进行索引,该方法允许使用标签而不是位置进行索引。
例子:

# 打印前五行,包括第 5 个索引和 df 的每一列
df.loc[0:5,:]
# 从第 5 行开始打印整列
df = df.loc[5:,:]

上面的内容实际上看起来与 df.iloc[0:5,:] 没有太大区别。这是因为虽然行标签可以采用任何值,但我们的行标签与位置完全匹配。但是在处理数据时,列标签可以让事情变得更容易。例子:

# 打印前 5 行时间段值
df.loc[:5,"Time period"]

image.png

使用 Pandas 进行 DataFrame 数学运算

数据帧的计算可以使用 pandas 工具的统计函数来完成。
例子:

# 计算各种汇总统计信息,不包括 NaN 值
df.describe()
# 用于计算相关性
df.corr()
# 计算数值数据等级
df.rank()

image.png

image.png

image.png

熊猫绘图

这些示例中的绘图是使用引用 matplotlib API 的标准约定制作的,该 API 提供了 pandas 的基础知识,可以轻松创建美观的绘图。
例子:

# 导入需要的模块
import matplotlib.pyplot as plt
# 绘制直方图
df['Observation Value'].hist(bins=10)

# 显示存在大量异常值/极值
df.boxplot(column='Observation Value', by = 'Time period')

# 将点绘制为散点图
x = df["Observation Value"]
y = df["Time period"]
plt.scatter(x, y, label= "stars", color= "m",
			marker= "*", s=30)
# x 轴标签
plt.xlabel('Observation Value')
# 频率标签
plt.ylabel('Time period')
# 显示绘图的功能
plt.show()

image.png

image.png

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。