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
输出:
使用 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
输出:
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"]
使用 Pandas 进行 DataFrame 数学运算
数据帧的计算可以使用 pandas 工具的统计函数来完成。
例子:
# 计算各种汇总统计信息,不包括 NaN 值 df.describe() # 用于计算相关性 df.corr() # 计算数值数据等级 df.rank()
熊猫绘图
这些示例中的绘图是使用引用 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()
感谢大家的阅读,有什么问题的话可以在评论中告诉我。希望大家能够给我来个点赞+收藏+评论 ,你的支持是海海更新的动力!后面我会持续分享前端 & 后端相关的专业知识。