您的位置:

深入了解pandas库

Python中最流行的数据处理库之一是Pandas。 Pandas的目标是提供一个在Python中操作表格类数据(如电子表格或SQL数据库表)的高级数据结构和分析工具。 本文将对 Pandas 中最常用的功能和方法进行详细讲解。

一、数据结构

Pandas 库提供了两种主要数据结构,Series 和 DataFrame。

1. Series 数据结构

一个 Series 是一维数组对象,可以存储任何数据类型(整数,字符串,浮点数,Python对象等)。 Series 可以看做是由两个数组组成,一个用于存储数据,另一个用于存储标签或索引,即 Series 中的 index。

import pandas as pd
data = [1, 2, 3, 4, 5]
s = pd.Series(data)
print(s)

输出:

0    1
1    2
2    3
3    4
4    5
dtype: int64

2. DataFrame 数据结构

一个 DataFrame 可以看做是在一个或多个轴(行和列)上具有标签索引(类似于一个 Excel 表格或 SQL 中的表)。 Pandas DataFrame 可以存储多种类型的数据,并将其视为二维表。

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 32, 18, 47], 
        'gender': ['F', 'M', 'M', 'M']}

df = pd.DataFrame(data)
print(df)

输出:

       name  age gender
0     Alice   25      F
1       Bob   32      M
2   Charlie   18      M
3     David   47      M

二、文件读取和写入

Pandas 支持各种文件格式的读取和写入,包括 CSV、Excel、SQL、JSON、HTML 和 HDF5 等。Pandas 提供了许多文件读取和写入函数,其中最常用的是 read_csv() 和 to_csv() 函数。

1. 读取 CSV 文件

import pandas as pd
df = pd.read_csv('file.csv')
print(df)

2. 写入 CSV 文件

import pandas as pd
df = pd.read_csv('file.csv')
df.to_csv('new_file.csv', index=False)

三、数据查询和过滤

Pandas 为数据查询和过滤提供了多种功能,如筛选行、选择列、分组、排序和合并等。

1. 筛选行

使用 loc 和 iloc 两个函数筛选行。其中loc可以使用标签进行筛选,iloc可以使用索引进行筛选。

import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 32, 18, 47], 
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

df = df.loc[df['age'] > 30]
print(df)

2. 选择列

使用 df.列名 或 df[列名] 进行列的选择。df.列名 只允许选择一个列,而df[列名] 可以同时选择多个列。

import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 32, 18, 47], 
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

print(df['name'])
print(df[['name', 'age']])

3. 分组聚合

使用 groupby 函数将数据按照某个字段(列)进行分组,然后对每组数据进行聚合操作,如求平均值、求和、计数等。

import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 32, 18, 47], 
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

grouped = df.groupby(by='gender')
print(grouped['age'].mean())

4. 排序

使用 sort_values 函数对数据进行排序,默认为升序排序。

import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 32, 18, 47], 
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

df.sort_values(by='age', inplace=True)
print(df)

四、数据可视化

Pandas 可以使用多种图表库(如 Matplotlib 和 Seaborn 等)进行数据可视化操作,用于帮助我们更好地理解和分析数据。

1. 折线图

使用 plot 函数进行折线图的绘制。

import pandas as pd
import matplotlib.pyplot as plt

data = {'year': [2010, 2011, 2012, 2013, 2014, 2015, 2016],
        'sales': [100, 200, 300, 400, 500, 600, 700]}
df = pd.DataFrame(data)

df.plot(x='year', y='sales', kind='line')
plt.show()

2. 柱状图

使用 plot 函数进行柱状图的绘制。

import pandas as pd
import matplotlib.pyplot as plt

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 32, 18, 47]}
df = pd.DataFrame(data)

df.plot(x='name', y='age', kind='bar', color='purple')
plt.show()

3. 散点图

使用 plot 函数进行散点图的绘制。

import pandas as pd
import matplotlib.pyplot as plt

data = {'x': [1, 2, 3, 4, 5], 
        'y': [2, 4, 1, 3, 5]}
df = pd.DataFrame(data)

df.plot(x='x', y='y', kind='scatter', color='red')
plt.show()