Python数据分析实战:用Pandas处理结构化数据 Pandas是Python中一个强大的数据分析库,特别适合处理结构化数据。它提供了许多功能,包括数据清洗、数据切片、数据筛选、数据合并等操作,使得数据处理变得非常方便和高效。本文将介绍如何用Pandas进行数据清洗和数据分析的实战操作。 一、数据清洗 数据清洗是数据分析的第一步,因为真正的数据分析需要干净、清洁的数据。在Pandas中,可以使用dropna()函数来删除数据帧中的缺失值,使用fillna()函数来填充缺失值。下面是一个例子: ``` python import pandas as pd import numpy as np df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, 12]}) df.dropna() ``` 这个例子中,我们创建了一个数据帧df,包含三列数据A、B和C。其中,A和B列有缺失值。我们使用dropna()函数删除了这些缺失值,得到了一个新的数据帧。 ``` python A B C 0 1.0 5.0 9 2 NaN 7.0 11 3 4.0 8.0 12 ``` 如果我们想要填充缺失值,可以使用fillna()函数。例如,我们可以使用平均值填充A列中的缺失值,使用中位数填充B列中的缺失值。代码如下: ``` python df.fillna({'A': df['A'].mean(), 'B': df['B'].median()}) ``` 这个例子中,我们使用字典来指定每一列要填充的值。使用mean()函数计算A列的平均值,使用median()函数计算B列的中位数。 二、数据切片和数据筛选 在Pandas中,可以使用iloc[]和loc[]函数来进行数据切片和数据筛选。iloc[]函数按照行和列的位置来进行切片,而loc[]函数按照行和列的标签来进行切片。下面是一个例子: ``` python df.iloc[0:2, 1:3] df.loc[:, ['A', 'B']] ``` 第一行代码使用iloc[]函数选取了第0行到第1行,第1列到第2列的数据。第二行代码使用loc[]函数选取了所有行的A列和B列数据。 Pandas还提供了一种更方便的方法来进行数据筛选,即使用布尔索引。布尔索引是一种根据某些条件来选择数据的方法。例如,我们可以使用如下代码选取A列中大于2的数据: ``` python df[df['A'] > 2] ``` 这个例子中,我们使用了df['A'] > 2来构造出一个布尔数组,然后使用这个数组来选取数据帧中相应的数据。 三、数据合并 在Pandas中,可以使用merge()函数来合并不同的数据帧。merge()函数可以按照某些列上的值来合并两个数据帧,并自动去除重复的列。下面是一个例子: ``` python 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', 'K3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}) pd.merge(df1, df2, on='key') ``` 这个例子中,我们创建了两个数据帧df1和df2,它们都包含一个key列。使用merge()函数按照key列的值来合并两个数据帧,并自动去除重复的列。 四、结语 Pandas是一个非常强大的数据分析库,可以大大简化数据清洗、数据切片、数据筛选和数据合并等操作。在实际的数据分析中,Pandas可以帮助我们节省大量的时间和精力。希望本文能够帮助大家掌握Pandas的基本操作,并能在实际项目中应用它。