本文共 2586 字,大约阅读时间需要 8 分钟。
Pandas库作为Python数据处理的核心工具,能够通过高效的操作实现数据分析与操作,替代传统的Excel数据处理。以下将从基础到应用,全面介绍Pandas的使用方法。
Series是Pandas中的基本数据结构,类似于NumPy的向量,通常用来存储一维数据序列或样本的某一属性值。可以通过以下方式创建Series:
import pandas as pdimport numpy as np# 从随机数生成正态分布数据Series1 = pd.Series(np.random.randn(4))print(Series1)
输出结果会自动生成行索引,显示为:
0 0.0000001 1.0000002 2.0000003 3.000000
Series还支持键值对存储,可以通过指定索引来实现:
Series2 = pd.Series(Series1.values, index=["row_" + str(i) for i in range(4)])print(Series2)
此外,Python字典也可以转换为Series,但需要注意字典本身是无序的:
Series3 = pd.Series({"China": "Beijing", "England": "GB", "Japan": "Tokyo"})print(Series3) 为了保持字典的顺序,可以通过指定索引来实现:
Series4_IndexList = ["China", "Japan", "England"]Series4 = pd.Series(Series3, index=Series4_IndexList)print(Series4)
若索引中存在重复项,Pandas会默认填充空值,可以使用isnull()和notnull()检查缺失值。
DataFrame是Series的扩展,表示二维数据,可以看作是NumPy矩阵或JSON对象。创建DataFrame的方式有多种:
DF1 = pd.DataFrame(np.asarray([("Japan", "Tokyo", 4000), ("S.Korea", "Seoul", 1000), ("China", "Beijing", 9000)], columns=["nation", "capital", "GDP"])print(DF1) DF2 = pd.DataFrame({"nation": ["Japan", "S.Korea", "China"], "capital": ["Tokyo", "Seoul", "Beijing"], "GDP": [4000, 1000, 9000]})print(DF2) 由于JSON中的键是无序的,通常需要通过指定列名来确保顺序:
DF3 = pd.DataFrame(DF2, columns=["nation", "capital", "GDP"])print(DF3)
在DataFrame中筛选数据,推荐使用.loc和.iloc等方法,而不是直接使用df['column'],因为后者可能与某些关键字冲突:
# 示例:筛选第一行print(DF4[0:1])# 示例:通过标签筛选print(DF4.loc[0])
DataFrame支持通过索引切片和布尔条件筛选:
# 筛选满足条件的行print(DF4[DF4 > 0])
DataFrame还支持向内插入新列:
DF4["region"] = "East Asian"print(DF4)
Pandas提供了丰富的数据操作函数,包括描述性统计、排序、透视表等:
print(df.describe())
# 按列排序print(df.sort_index(axis=1, ascending=False))# 按值排序print(df.sort_values(by='B'))
print(pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C']))
# 列转行print(stacked = df.stack())# 行转列print(stacked.unstack())
在数据处理中,Pandas支持通过reindex()、dropna()和fillna()等方法处理缺失值:
# 重新排列索引并填充缺失值df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E'])df1.loc[dates[0:1], 'E'] = 1print(df1)
Pandas支持多种数据格式导入和保存:
df.to_csv('foo.csv')df = pd.read_csv('foo.csv')print(df) df.to_hdf('foo.h5', 'df')df = pd.read_hdf('foo.h5', 'df')print(df) df.to_excel('foo.xlsx', sheet_name='Sheet1')df = pd.read_excel('foo.xlsx', sheet_name='Sheet1')print(df) 在实际使用中,可以通过以下方式高效操作数据:
# 通过位置访问print(df.iat[1,1])# 通过标签访问print(df.at[dates[0], 'A'])
Pandas的强大功能使其成为数据科学和工程领域的首选工具。通过上述方法,可以轻松完成数据清洗、统计分析、可视化等多种操作,为后续的机器学习和数据分析奠定基础。
转载地址:http://umafk.baihongyu.com/