如何让Python以最简单、最流行的方式理解Pandas库?
来源:知乎
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)

列出所有列 :
df.columns

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

数据描述:
对于包含数字数据的列,我们有一个非常简洁的函数,可以显示许多有用的统计信息:
df["release_year"].describe()

此外,还有一些其他精确高效的函数可以尝试:group by
、min()
max()、mean()
,sum()
。
3。数据可视化
数据可视化可以让我们更直观地理解和分析数据。因此,可视化功能在数据分析中直观上也很重要。
除了提供数据读取和探索功能外,Pandas还具有数据可视化功能。
直方图:
df["release_year"].hist(bins=10)

条形图:
df['country'].value_counts().head(5).plot.bar(title="Movies by Country")

折线图::当然也是交互式方式。
但是有了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前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。