Code前端首页关于Code前端联系我们

如何让Python以最简单、最流行的方式理解Pandas库?

terry 2年前 (2023-09-24) 阅读数 60 #后端开发
作者:Jackpop
来源:知乎

pandas 是一个 Python 软件包,提供快速、灵活和富有表现力的数据结构,专为处理“关系”或“标记”数据变量而设计。简单直观

这个解释比较官方。

我个人的理解是,Pandas相当于Python中的Excel、SQL等电子表格工具,但在此基础上还有更丰富、更高效的功能。

熟悉Excel和SQL的同学应该明白,Excel和SQL经常用来处理一维和二维数据,效率很高。

以数据分析为例。当我们使用Python从头开始开发程序时,需要实现数据读取、数据结构定义、数据遍历、数据处理、数据计算......

这是一个繁琐且多余的过程。

通过SQL或Excel,我们可以计算计数sum,姚❀❝❝姚❀❝的等功能,只需几行De Code可以实现几十行甚至上百行Python代码的工作,大大提高了开发效率。

相比于SQL和Excel,Python提供了更灵活、更强大的数据分析/处理功能。

其功能包括但不限于:

  • 数据清洗
  • 数据填充
  • 数据标准化
  • 任务合并加入 统计分析
  • 数据检查
  • 数据阅读和写作

现在我们从提取方面来介绍一下Pandas。

1。数据读写

Pandas的优点之一是它有很多内置函数,可以从各种数据源读取数据。

SQL、Excel、CSV、JSON、HDF5、Parquet、PDF、Pickle、TXT 等。

这样我们就不再需要使用Python针对不同类型的数据解释编写相应的处理函数,并且可以轻松兼容不同的数据存储格式。

import pandas as pd
​
# 从Excel中读取数据
df = pd.read_excel(example.xlsx', sheet_name='sheet1')
                   
# 从CSV中读取数据
df = pd.read_csv('example.csv',sep = ';')

如果我们不用Pandas,首先要安装Excel、CSV相关的第三方工具包,然后再编写读写代码、异常处理和数据遍历,会很麻烦。

2。数据探索

读完数据后,接下来要做的就是探索并熟悉数据。

这里我们以Netflix电影数据库数据为例。

从 CSV 文件中读取前 3 行数据:

df = pd.read_csv('netflix.csv')
df.head(3)
Python的pandas库,如何最简单、通俗地理解?

列出所有列

df.columns
Python的pandas库,如何最简单、通俗地理解?

数据统计 ::计数 探索和获取专栏对于离散值,此函数将列出所有唯一值以及它们在数据集中出现的频率:

df["type"].value_counts()
Python的pandas库,如何最简单、通俗地理解?

数据描述

对于包含数字数据的列,我们有一个非常简洁的函数,可以显示许多有用的统计信息:

df["release_year"].describe()
Python的pandas库,如何最简单、通俗地理解?

此外,还有一些其他精确高效的函数可以尝试:group bymin() max()、mean() sum()

3。数据可视化

数据可视化可以让我们更直观地理解和分析数据。因此,可视化功能在数据分析中直观上也很重要。

除了提供数据读取和探索功能外,Pandas还具有数据可视化功能。

直方图

df["release_year"].hist(bins=10)
Python的pandas库,如何最简单、通俗地理解?

条形图

df['country'].value_counts().head(5).plot.bar(title="Movies by Country")
Python的pandas库,如何最简单、通俗地理解?

折线图::当然也是交互式方式。

但是有了Pandas,只需几行简单的代码就可以实现更直观的数据展示,而且不需要第三方工具包。

4。数据ETL

目前数据ETL主要使用SQL,实现简单,可解释性强。

Python的Pandas还可以实现简单的数据ETL,可以帮助我们对数据进行多方面的清洗和改造。

现在,由于我们几乎不会从多个数据源读取数据,因此这就需要数据关联、融合和转换,而这在 Pandas 中可以轻松实现。

关联

df = pd.merge(df1, df2, on = ‘keyColum’, how = 'inner')

拼接

df  = pd.concat([df1, df2])

字符串函数

# 转成大写
countries_df['Country_upper'] = countries_df['Country'].str.upper()
#  转成小写
countries_df['CountryCode_lower']=countries_df['CountryCode'].str.lower()
# 计算字符串长度
countries_df['len'] = countries_df['Country'].str.len()

数据过滤

filteredDf = df[df['release_year']==2020]

函数操作

这是Pandas提供的最强大的功能之一。

它允许您以逐行的方式(也可以逐列的方式)应用一些转换、条件,甚至用户定义的函数。

以下代码片段展示了如何将用户定义的函数应用于列:

def upper(title):
    newTitle = str(title).upper()
    return newTitle
df['TITLE'] = df['title'].apply(lambda x: upper(x))

5. 数据导出

当我们处理完数据后,接下来要做的就是保存数据。

Pandas还提供了非常实用的功能。

Excel

df.to_excel('myData.xlsx',index=False, sheet_name='Sheet1')

CSV

df.to_csv('myData.csv',index=False)

数据库

import pyodbc
server = "10.21.120.88"
database = "dataBaseName"
username = "usr"
password = "password"
​
cnxn = pyodbc.connect("DRIVER={SQL Server}; SERVER="+server+";DATABASE="+database+";UID="+username+";PWD="+password)
cursor = cnxn.cursor()
df.to_sql('myData', cnxn, if_exists='replace', index = False)

Pandas是一个非常实用的工具包,在Pandas的帮助下你可以轻松做很多事情。

Python 尤其是独立于平台的。我们可以在任何地方运行 ETL 脚本。在 SSIS、Alteryx、Azure、AWS、Power BI 中,甚至可以通过将 Python 代码转换为可执行文件来作为独立应用程序运行。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门