Python神器pandas,数据分析不再难 随着大数据时代的到来,数据分析已经成为了一个必不可少的技能。但是对于许多从事技术工作的人来说,数据分析似乎是一个难以逾越的壁垒。那么问题来了,如何让数据分析更加简单、高效呢?答案就是Python神器pandas。 Pandas是一个高性能、易于使用的数据结构和数据分析工具,它提供了丰富的数据操作和分析功能,使得数据科学家和数据分析师能够更加轻松地完成数据分析任务。下面我们就来详细讲解一下Pandas的技术知识点。 Pandas的两个主要数据结构 Pandas的两个核心数据结构是Series和DataFrame。Series可以看做是一维数组,它带有索引,可以保存任何数据类型。而DataFrame则是一个二维表格,它可以看做是由多个Series组成的。在Pandas中,大多数操作都是基于这两个数据结构进行的。 Series的创建方法 创建Series有多种方法,比较常用的方法包括: 1. 从列表创建 ```python import pandas as pd s = pd.Series([1, 3, 5, np.nan, 6, 8]) print(s) ``` 2. 从字典创建 ```python import pandas as pd data = {'a': 0., 'b': 1., 'c': 2.} s = pd.Series(data) print(s) ``` 3. 从ndarray创建 ```python import pandas as pd import numpy as np arr = np.array([1, 2, 3, 4]) s = pd.Series(arr, index=['a', 'b', 'c', 'd']) print(s) ``` DataFrame的创建方法 同样,创建DataFrame也有多种方法,比较常用的方法包括: 1. 从ndarray创建 ```python import pandas as pd import numpy as np data = np.array([[1, 2, 3], [4, 5, 6]]) df = pd.DataFrame(data) print(df) ``` 2. 从字典创建 ```python import pandas as pd data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 'age': [28, 34, 29, 42]} df = pd.DataFrame(data) print(df) ``` 3. 从列表创建 ```python import pandas as pd data = [['Tom', 28], ['Jack', 34], ['Steve', 29], ['Ricky', 42]] df = pd.DataFrame(data, columns=['Name', 'Age']) print(df) ``` Pandas的数据操作 Pandas具备丰富的数据操作功能,其中包括数据选取、过滤、排序、合并、分组、聚合等。 数据选取 数据选取是数据分析的基本操作之一。在Pandas中,我们可以使用loc、iloc、at、iat等方法进行选取。 1. loc方法 使用loc方法可以通过标签(行标签和列标签)进行选取。 ```python import pandas as pd data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 'age': [28, 34, 29, 42]} df = pd.DataFrame(data) print(df.loc[0]) # 选取第一行数据 print(df.loc[:, 'name']) # 选取name列 print(df.loc[1:2, ['name', 'age']]) # 选取第二行和第三行的name和age列数据 ``` 2. iloc方法 使用iloc方法可以通过位置进行选取。 ```python import pandas as pd data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 'age': [28, 34, 29, 42]} df = pd.DataFrame(data) print(df.iloc[0]) # 选取第一行数据 print(df.iloc[:, 0]) # 选取第一列数据 print(df.iloc[1:3, :]) # 选取第二行和第三行数据 ``` 数据过滤 数据过滤是数据分析中常用的操作之一。在Pandas中,我们可以使用条件表达式对数据进行过滤。 ```python import pandas as pd data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 'age': [28, 34, 29, 42]} df = pd.DataFrame(data) print(df[df['age'] > 30]) # 选取age大于30的数据 ``` 数据排序 数据排序也是数据分析中经常使用的操作之一。在Pandas中,我们可以使用sort_values方法进行排序。 ```python import pandas as pd data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 'age': [28, 34, 29, 42]} df = pd.DataFrame(data) print(df.sort_values(by=['age'], ascending=False)) # 按age列进行降序排列 ``` 数据合并 在数据分析中,我们常常需要将不同的数据源合并在一起进行分析。Pandas提供了merge、concat等方法进行数据合并。 ```python import pandas as pd df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'], 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3']}) df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K4'], 'C': ['C0', 'C1', 'C2', 'C4'], 'D': ['D0', 'D1', 'D2', 'D4']}) print(pd.merge(df1, df2, on='key')) # 按照key列进行合并 ``` 数据分组 在数据分析中,我们常常需要进行数据分组,以便于进行统计和分析。Pandas提供了groupby方法进行数据分组。 ```python import pandas as pd data = {'name': ['Tom', 'Tom', 'Jack', 'Jack', 'Steve', 'Steve', 'Ricky', 'Ricky'], 'gender': ['M', 'M', 'M', 'M', 'F', 'F', 'M', 'M'], 'year': [2018, 2019, 2018, 2019, 2018, 2019, 2018, 2019], 'value': [1, 2, 3, 4, 5, 6, 7, 8]} df = pd.DataFrame(data) print(df.groupby(['name']).sum()) # 按照name列进行分组,并对value列进行求和 ``` 数据聚合 在数据分析中,我们常常需要进行数据聚合,以便于对数据进行统计和分析。Pandas提供了聚合函数(如sum、count、mean等)进行数据聚合。 ```python import pandas as pd data = {'name': ['Tom', 'Tom', 'Jack', 'Jack', 'Steve', 'Steve', 'Ricky', 'Ricky'], 'gender': ['M', 'M', 'M', 'M', 'F', 'F', 'M', 'M'], 'year': [2018, 2019, 2018, 2019, 2018, 2019, 2018, 2019], 'value': [1, 2, 3, 4, 5, 6, 7, 8]} df = pd.DataFrame(data) print(df.groupby(['name']).agg({'value': 'sum', 'year': 'count'})) # 按照name列进行分组,对value列进行求和,对year列进行计数 ``` 总结 Pandas作为Python数据分析的重要工具,具备丰富的数据操作和分析功能,为数据科学家和数据分析师提供了强大的支持。本文介绍了Pandas的两个主要数据结构、数据操作、数据选取、数据合并、数据分组和数据聚合等常用技术知识点,希望对读者进行数据分析提供一定的帮助。