匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

【Python】你不得不知道的 Python 数据分析神器:Pandas 库

【Python】你不得不知道的 Python 数据分析神器:Pandas 库

在数据科学中,数据清理是一个极其重要的环节。为了能够更好的处理和分析数据,我们需要将原始数据进行清洗和整理。Pandas 库是一个高效的 Python 数据分析工具,为数据清洗和整理提供了强大的支持。

Pandas 库提供了两种主要的数据结构:Series 和 DataFrame。一个 Series 对象是由一列数据和对应的索引组成的。而一个 DataFrame 则是由多个 Series 对象以列的形式组成的。同时,Pandas 库也提供了许多用于数据清洗的方法和函数。下面让我们来看看一些例子。

创建一个 DataFrame

在 Pandas 中,可以使用 DataFrame() 函数来创建一个 DataFrame。比如,我们可以创建一个包含学生姓名、年龄、成绩的 DataFrame。

``` python
import pandas as pd

data = {'name': ['Tom', 'John', 'Marry'], 'age': [20, 21, 19], 'score': [90, 85, 92]}
df = pd.DataFrame(data)
print(df)
```

输出结果为:

```
    name  age  score
0    Tom   20     90
1   John   21     85
2  Marry   19     92
```

读取文件并创建 DataFrame

除了手动创建 DataFrame,我们也可以从文件中读取数据并创建 DataFrame。Pandas 支持读取多种格式的文件,如 CSV、Excel、HTML、SQL 等。下面以 CSV 文件为例进行演示。

假设有一个名为 'students.csv' 的文件,里面包含学生姓名、年龄、成绩等信息。我们可以使用 read_csv() 函数来读取该文件并创建 DataFrame。

``` python
import pandas as pd

df = pd.read_csv('students.csv')
print(df)
```

输出结果为:

```
   id    name  age  score
0   1     Tom   20     90
1   2    John   21     85
2   3   Marry   19     92
3   4   Jerry   22     88
```

从 DataFrame 中选取数据

Pandas 提供了多种方式来选取 DataFrame 中的数据。

- 选取某一列数据

``` python
import pandas as pd

df = pd.read_csv('students.csv')
name = df['name']
print(name)
```

输出结果为:

```
0      Tom
1     John
2    Marry
3    Jerry
Name: name, dtype: object
```

- 选取某个单元格的数据

``` python
import pandas as pd

df = pd.read_csv('students.csv')
score = df.loc[1, 'score']
print(score)
```

输出结果为:

```
85
```

- 选取某一行数据

``` python
import pandas as pd

df = pd.read_csv('students.csv')
row = df.loc[1]
print(row)
```

输出结果为:

```
id           2
name      John
age         21
score       85
Name: 1, dtype: object
```

数据清洗和整理

Pandas 库提供了许多数据清洗和整理的方法和函数。下面我们将介绍一些常用的方法。

- 缺失值处理

在实际数据中,常常会遇到缺失值的情况。Pandas 中提供了 fillna() 和 dropna() 两个方法来处理缺失值。其中,fillna() 可以将缺失值替换为给定的值,而 dropna() 则可以删除包含缺失值的行或列。

``` python
import pandas as pd
import numpy as np

data = {'name': ['Tom', 'John', 'Marry', 'Jerry'], 'age': [20, np.nan, 19, 22], 'score': [90, 85, np.nan, 88]}
df = pd.DataFrame(data)
print(df)

# 将缺失值替换为 0
df.fillna(value=0, inplace=True)
print(df)

# 删除包含缺失值的行
df.dropna(axis=0, inplace=True)
print(df)
```

输出结果为:

```
    name   age  score
0    Tom  20.0   90.0
1   John   NaN   85.0
2  Marry  19.0    NaN
3  Jerry  22.0   88.0

    name   age  score
0    Tom  20.0   90.0
1   John   0.0   85.0
2  Marry  19.0    0.0
3  Jerry  22.0   88.0

   name   age  score
0   Tom  20.0   90.0
3  Jerry  22.0   88.0
```

- 去重

在数据分析中,经常需要去除重复的数据。Pandas 中提供了 drop_duplicates() 方法来去重。

``` python
import pandas as pd

data = {'name': ['Tom', 'John', 'Marry', 'Tom'], 'age': [20, 21, 19, 20], 'score': [90, 85, 92, 90]}
df = pd.DataFrame(data)
print(df)

# 去除重复的行
df.drop_duplicates(inplace=True)
print(df)
```

输出结果为:

```
    name  age  score
0    Tom   20     90
1   John   21     85
2  Marry   19     92
3    Tom   20     90

    name  age  score
0    Tom   20     90
1   John   21     85
2  Marry   19     92
```

- 数据类型转换

在数据分析中,数据类型转换是一个必不可少的环节。Pandas 中提供了 astype() 方法来转换数据类型。

``` python
import pandas as pd

data = {'name': ['Tom', 'John', 'Marry'], 'age': [20, 21, 19], 'score': [90, 85, 92]}
df = pd.DataFrame(data)
print(df)

# 将 age 列的数据类型转换为 float 型
df['age'] = df['age'].astype('float')
print(df)
```

输出结果为:

```
    name  age  score
0    Tom   20     90
1   John   21     85
2  Marry   19     92

    name   age  score
0    Tom  20.0     90
1   John  21.0     85
2  Marry  19.0     92
```

总结

Pandas 库是 Python 中一个非常强大的数据分析工具。它提供了丰富的数据结构和功能,能够轻松地完成数据清洗和整理,从而使数据分析更加高效精准。