继续探索第三方库 Pandas(第 3 部分)
在继续探索第三方库 Pandas 的过程中,我们逐渐探讨其高级功能和应用,这对数据分析和数据处理非常有帮助。在第三部分,我们将重点关注以下几个方面:
1. 数据合并与连接
Pandas 提供了强大的数据合并功能,通过 merge()
、concat()
和 join()
方法,可以轻松实现数据表的连接和合并。
merge()
函数:用于两个数据帧根据一个或多个键进行连接,类似于 SQL 中的 JOIN 操作。import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value_df1': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value_df2': [4, 5, 6]})
result = pd.merge(df1, df2, on='key', how='inner')
print(result)
concat()
函数:主要用于沿着一条轴将数据帧或 Series 组合起来。df3 = pd.DataFrame({'value_df3': [7, 8, 9]}, index=[0, 1, 2])
result = pd.concat([df1, df3], axis=1)
print(result)
2. 数据透视表与分组操作
透视表和分组操作是数据汇总和分析的核心手段,使用 pivot_table()
和 groupby()
方法,Pandas 可以实现灵活的数据分组和聚合。
透视表:通过
pivot_table()
创建,支持多种聚合方式。data = {'A': ['foo', 'foo', 'bar', 'bar'],
'B': ['one', 'two', 'one', 'two'],
'C': [1, 2, 3, 4]}
df = pd.DataFrame(data)
pivot_table = df.pivot_table(values='C', index='A', columns='B', aggfunc='sum')
print(pivot_table)
分组聚合:使用
groupby()
对数据根据某列分组,并应用聚合函数。grouped = df.groupby('A').agg({'C': 'sum'})
print(grouped)
3. 处理缺失数据
Pandas 提供了多种工具来处理缺失数据,如 isna()
/isnull()
识别缺失值,fillna()
替换缺失值,dropna()
删除缺失值。
df_with_nan = pd.DataFrame({'A': [1, None, 3], 'B': [4, 5, None]})
# 填充缺失值
df_filled = df_with_nan.fillna(0)
print(df_filled)
# 删除包含缺失值的行
df_dropped = df_with_nan.dropna()
print(df_dropped)
4. 数据类型转换
有时候,我们需要对数据帧中的某些列进行类型转换,可以使用 astype()
方法。
df = pd.DataFrame({'A': ['1', '2', '3']})
df['A'] = df['A'].astype(int)
print(df.dtypes)
5. 高级数值运算与应用函数
Pandas 配合 NumPy 微调,从而提供了更高效的数值运算工具,并通过 apply()
、map()
等方法实现复杂的函数应用。
import numpy as np
df = pd.DataFrame(np.random.randn(5, 3), columns=list('ABC'))
# 应用一个自定义函数
df['D'] = df['A'].apply(lambda x: x * 2)
print(df)
# 使用 NumPy 进行统计运算
np_sum = np.sum(df)
print(np_sum)
在 Pandas 的学习中,探索这些高级特性将很有助于更深入地数据处理和分析。不断实践和应用这些功能,可以让你更好地理解和掌握 Pandas 提供的丰富工具集。