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的两个主要数据结构、数据操作、数据选取、数据合并、数据分组和数据聚合等常用技术知识点,希望对读者进行数据分析提供一定的帮助。