社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python数据分析最重要的13个Pandas函数

蚂蚁学Python • 2 月前 • 85 次点击  

介绍

Python 是数据分析和数据科学中使用最广泛的语言之一。Python 很容易学习,拥有一个由学习者和讲师组成的优秀在线社区,并且拥有一些非常强大的以数据为中心的库。Pandas 是 Python 中用于数据分析和数据科学的最重要的库之一。

在本文中,我们将介绍 Python 中 13 个最重要和基本的 Pandas 函数以及每个数据分析师和数据科学家都必须了解的方法。

1.read_csv()

这是 Python 中最重要的 pandas 方法之一。read_csv() 函数有助于将逗号分隔值 (csv) 文件读取到 Pandas DataFrame 中。您所需要做的就是提及您希望其读取的文件的路径。它还可以读取由逗号以外的分隔符分隔的文件,例如 | 或选项卡。

# importing libraryimport pandas as pd
# reading the datasetdata_1 = pd.read_csv(r'blog_dataset.csv')

数据已从数据源读取到 Pandas DataFrame 中。您必须更改要读取的文件的路径。

to_csv() 函数的工作原理与 read_csv() 完全相反。它有助于将 Pandas DataFrame 或 Series 中包含的数据写入 csv 文件。read_csv() 和 to_csv() 是 Pandas 中最常用的函数之一,因为它们在从数据源读取数据时使用,并且了解它们非常重要。

2.head()

head(n) 用于返回数据集的前 n 行。默认情况下,df.head() 将返回 DataFrame 的前 5 行。如果您想要更多/更少的行数,可以将 n 指定为整数。

data_1.head(6)

输出:


姓名年龄城市状态出生日期性别城市温度薪水
0阿拉姆29印多尔中央邦1991年11月20日男性35.550000
1罗希特23新德里德里1997年9月19日男性39.085000
2比姆拉35罗赫塔克哈里亚纳邦1985年9月1日女性39.720000
3拉胡尔25加尔各答西孟加拉邦1995年9月19日男性36.540000
4查曼32钦奈泰米尔纳德邦1988年3月12日男性41.165000
5维韦克38古鲁格拉姆哈里亚纳邦1982年6月22日男性38.935000

前 6 行(索引 0 到 5)按照预期作为输出返回。

tail() 与 head() 类似,返回数据集的最后 n 行。head() 和 tail() 帮助您快速浏览数据集,并检查数据是否已正确读入 DataFrame。

3. describe()

describe() 用于生成 Pandas DataFrame 或 Series 中数据的描述性统计数据。它总结了数据集的集中趋势和离散度。describe() 有助于快速概览数据集。

data_1.describe()

输出:


年龄城市温度薪水
数数9.0000008.0000009.000000
意思是32.00000038.57500044444.444444
标准5.8949131.77180321360.659582
分钟23.00000035.50000018000.000000
25%29.00000038.30000035000.000000
50%32.00000038.95000040000.000000
75%38.00000039.17500052000.000000
最大限度39.00000041.10000085000.000000

describe() 列出了数据集中所有数字列的不同描述性统计度量。通过为 include 属性分配值“all”,我们可以获得包含所有列的描述,包括那些包含分类信息的列。

4.memory_usage() 

memory_usage() 返回一个 Pandas Series,其中包含 Pandas DataFrame 中每列的内存使用情况(以字节为单位)。通过将 deep 属性指定为 True,我们可以了解每列实际占用的空间。

data_1.memory_usage(deep=True)

输出:

指数80
名称 559

72岁

城市578

州 584

出生603

性别553

城市温度 72

工资 72

数据类型:int64

每列的内存使用情况已作为 Pandas Series 的输出给出。了解 DataFrame 的内存使用情况非常重要,这样您就可以解决 Python 中的 MemoryError 等错误。

5.astype()

astype() 用于将 Python 对象转换为特定数据类型。如果您的数据未以正确的格式(数据类型)存储,它可能是一个非常有用的功能。例如,如果浮点数被 Python 误解为字符串,您可以使用 astype() 将它们转换回浮点数。或者,如果要将对象数据类型转换为类别,可以使用 astype()。

data_1['Gender'] = data_1.Gender.astype('category')

您可以通过使用 dtypes 属性查看数据集中所有列的数据类型来验证数据类型的更改。

6. loc[:]

loc[:] 有助于根据我们的要求访问数据集中的一组行和列,即数据集的一部分。例如,如果我们只想要数据集的最后 2 行和前 3 列,我们可以借助 loc[:] 访问它们。我们还可以根据标签而不是行号和列号来访问行和列。

data_1.loc[0:4, ['Name', 'Age', 'State']]

输出:


姓名年龄状态
0阿拉姆29 中央邦
1罗希特23德里
2比姆拉35哈里亚纳邦
3拉胡尔25西孟加拉邦
4查曼32泰米尔纳德邦

上面的代码将返回前 5 条客户记录的“Name”、“Age”和“State”列。请记住,Python 中的索引从 0 开始,并且 loc[:] 包含提到的两个值。因此 0:4 表示索引 0 到 4,两者都包括在内。

loc[:] 是 Pandas 中最强大的函数之一,是所有数据分析师和数据科学家必须了解的。

iloc[:] 的工作方式类似,只是 iloc[:] 不包含这两个值。因此 iloc[0:4] 将返回索引为 0、1、2 和 3 的行,而 loc[0:4] 将返回索引为 0、1、2、3 和 4 的行。

7. to_datetime()

to_datetime() 将 Python 对象转换为日期时间格式。它可以采用整数、浮点数、列表、Pandas Series 或 Pandas DataFrame 作为参数。当数据集具有时间序列值或日期时,to_datetime() 非常强大。

data_1['DOB'] = pd.to_datetime(data_1['DOB'])

DOB 列现已更改为 Pandas 数据时间格式。所有日期时间函数现在都可以应用于此列。

8. value_counts()

value_counts() 返回包含唯一值计数的 Pandas Series。考虑一个数据集,其中包含有关公司 5,000 名客户的客户信息。value_counts() 将帮助我们识别系列中每个唯一值的出现次数。它可以应用于包含州、就业行业或客户年龄等数据的列。

data_1['状态'].value_counts()

输出:

哈里亚纳邦 3
德里 2

西孟加拉邦 1

泰米尔纳德邦 1

比哈尔邦 1

中央邦 1

名称:状态,数据类型:int64

正如预期的那样,数据集中每个状态的出现次数已在输出中返回。value_counts() 还可用于绘制分类数据和序数数据的条形图。

data_1['State'].value_counts(normalize=True).plot(kind='bar', title='State')

9. drop_duplicates()

drop_duplicates() 返回删除了重复行的 Pandas DataFrame。即使在重复项中,也可以选择保留重复项的第一次出现(记录)或最后一次出现。您还可以指定 inplace 和ignore_index 属性。

data_1.drop_duplicates(inplace=True)

inplace=True 确保更改应用于原始数据集。 您可以通过查看原始数据集的形状和修改后的数据集(删除重复项后)来验证更改。您会注意到行数已从 9 行减少到 8 行(因为删除了 1 个重复项)。

10. groupby()

groupby() 用于按 1 列或多列对 Pandas DataFrame 进行分组,并对其执行一些数学运算。groupby() 可以用来以简单的方式汇总数据。

data_1.groupby(by='State').Salary.mean()

输出:

状态
比哈尔邦 18000

德里 68500

哈里亚纳邦 27500

中央邦 50000

泰米尔纳德邦 65000

西孟加拉邦 40000

名称:工资,dtype:int64

上面的代码将按“州”列对数据集进行分组,并将返回各州的平均年龄。

11. merge()

merge() 用于在公共列(字段)上合并 2 个 Pandas DataFrame 对象或一个 DataFrame 和一个 Series 对象。如果你熟悉SQL中JOIN的概念,合并功能与此类似。它返回合并的 DataFrame。

data_1.merge(data_2, on='Name', how='left')

12. sort_values() 

sort_values() 用于按升序或降序对 Pandas DataFrame(或 Pandas Series)中的列进行排序。通过将inplace属性指定为True,可以直接在原始DataFrame中进行更改。

data_1.sort_values(by='Name', inplace=True)

输出:


姓名年龄城市状态出生日期性别城市温度薪水
0阿拉姆29印多尔中央邦1991-11-20男性35.550000
2比姆拉35罗赫塔克哈里亚纳邦1985-09-01女性39.720000
4查曼32钦奈泰米尔纳德邦1988-12-03男性41.165000
6查鲁29新德里德里1992-03-18女性39.052000
7加内什39巴特那比哈尔邦1981-07-12男性18000
3拉胡尔25加尔各答西孟加拉邦1995-09-19男性36.540000
1罗希特23新德里德里1997-09-19男性39.085000
5维韦克38古鲁格拉姆哈里亚纳邦1982年6月22日男性38.935000

您可以看到记录的顺序现在已更改。记录现在按名称的字母顺序列出。sort_values() 还有许多其他可以指定的属性。

与sort_values()类似的是sort_index()。它用于按索引而不是列值对 DataFrame 进行排序。

13. fillna() 

通常,在大型数据集中,您会发现多个被 Python 标记为 NaN 的条目。NaN 代表“不是数字”,表示原始数据源中未填充的条目。在填充 DataFrame 中的值时,Pandas 确保用户可以单独识别这些条目。

fillna() 通过将这些缺失值替换为更合适的值,帮助替换 DataFrame 或 Series 中的所有 NaN 值。

data_1['City temp'].fillna(38.5, inplace=True)

上面的代码将用 38.5 替换所有空白的“City temp”条目。缺失值可以用平均值、中位数、众数或其他值来估算。我们为我们的案例选择了均值。

尾注

在本文中,我们了解了 Pandas 中对数据分析和数据科学非常重要的 13 个最重要的函数和方法。

Python工作流程庞大且复杂。如果您熟练掌握,还有更多的内容需要学习。

值得庆幸的是,您来对地方了!

我们提供由前百度资深大数据工程师主持的自定进度课程”Python零基础到全栈视频课程”您将通过大量的实践练习来学习Python入门、网络爬虫、数据分析、机器学习等内容。

如果您想了解培训如何进行,可以访问码易编程的官网:https://mayibiancheng.net/ 

有任何问题可以想咨询蚂蚁老师 ant_learn_python 微信账号。

点击下方“阅读全文”,可以直达课程主页。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/167120
 
85 次点击