简介
Pandas是一个开源的Python数据分析库,由Wes McKinney在2008年开发,目前由PyData团队维护。Pandas以其强大的数据处理和分析能力,在数据科学和数据分析领域得到了广泛应用。它构建在NumPy和Matplotlib之上,与Python的其他科学计算库兼容,形成数据分析的三剑客。Pandas的核心数据结构包括Series和DataFrame,为用户提供了高效的数据操作和分析工具。
Pandas的核心数据结构
Series
Series是一维数组,可以存储任何数据类型,每个元素都有一个唯一的标签(索引)。它类似于Python中的列表或NumPy数组,但提供了更丰富的索引和操作功能。
import pandas as pd
# 创建一个Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
DataFrame
DataFrame是二维表格型数据结构,可以理解为多个Series的集合。每个列有自己的标签,行也有相应的索引。它是Pandas中最常用的数据结构。
import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['Tom', 'Nick', 'John', 'Alice'],
'Age': [20, 21, 19, 18],
'City': ['New York', 'London', 'Toronto', 'Sydney']
}
df = pd.DataFrame(data)
print(df)
Pandas的主要功能
读/写数据源
Pandas支持从多种格式(如CSV、Excel、SQL数据库)读取数据,并能将处理后的数据保存到这些格式。
# 读取CSV文件
df = pd.read_csv('data.csv')
# 保存DataFrame到CSV文件
df.to_csv('output.csv', index=False)
数据清洗和预处理
Pandas提供了处理缺失值的工具,如填充NaN值或删除含有缺失值的行或列。它还支持数据类型转换、排序、去重等功能。
# 处理缺失值
df.fillna(0, inplace=True)
# 删除含有缺失值的行
df.dropna(inplace=True)
# 数据类型转换
df['Age'] = df['Age'].astype(int)
# 排序
df.sort_values(by='Age', inplace=True)
# 去重
df.drop_duplicates(inplace=True)
时间序列分析
Pandas内置了对日期和时间的处理,可以方便地进行时间序列数据的切片、重采样和计算频率转换。
import pandas as pd
# 创建时间序列数据
ts = pd.Series([1, 2, 3, 4, 5], index=pd.date_range(start='1/1/2020', periods=5, freq='D'))
# 时间序列数据切片
ts['2020-01-01':'2020-01-03']
# 时间序列数据重采样
ts.resample('M').sum()
# 计算频率转换
ts.freq_convert('H', method='ffill')
分组与聚合
通过groupby()函数,可以基于一个或多个列对数据进行分组,并对分组后的数据执行聚合操作(如求和、平均值、计数等)。
# 分组与聚合
df.groupby('City')['Age'].mean()
透视表与交叉表
使用pivot_table()函数,可以创建透视表和交叉表,对数据进行多维度分析。
# 创建透视表
pivot_table = df.pivot_table(values='Age', index='City', columns='Name')
# 创建交叉表
cross_table = df.crosstab(index='City', columns='Name')
总结
Pandas是一个功能强大的数据分析库,它可以帮助用户轻松地进行数据清洗、预处理、统计分析、时间序列分析等操作。通过学习Pandas,用户可以更加高效地进行数据分析工作。