Pandas 核心概念
在 Pandas 中,主要有两个数据结构:
Series:类似一维数组的对象。
DataFrame:类似二维表格的对象,行和列分别代表索引和字段。
简单来说,你可以把 Series
想象成 Excel 里的一列,而 DataFrame
则是一个完整的 Excel 表格。
Pandas 高频函数详解
1. pd.read_csv()
功能:用于从 CSV 文件中读取数据,生成 DataFrame。
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
概念解析:read_csv()
是 Pandas 的数据读取神器,支持大多数常见的文件格式如 CSV、TSV 等。默认读取所有列并保留文件中的所有行。
2. df.head()
功能:返回 DataFrame 的前几行,默认是前 5 行。
print(df.head(3)) # 显示前三行
概念解析:适合在数据预览阶段使用,帮你快速查看数据表的内容和结构。
3. df.tail()
功能:返回 DataFrame 的最后几行,默认是最后 5 行。
print(df.tail(3)) # 显示最后三行
概念解析:与 head()
功能相似,但查看的是末尾部分,尤其适用于大数据集的处理。
4. df.info()
功能:显示 DataFrame 的基本信息,包括列名、数据类型、缺失值等。
print(df.info())
概念解析:这是检查数据质量的好工具,能够一目了然看到是否有缺失值和列类型。
5. df.describe()
功能:对数值列进行基本的统计描述,如均值、标准差、最小值等。
print(df.describe())
概念解析:快速获得数值型数据的统计信息,是数据探索的第一步。
6. df.drop()
功能:删除 DataFrame 中的行或列。
df_dropped = df.drop(columns=['column_name'])
概念解析:用于数据清理,特别是当你想删除无用或噪声数据时。
7. df.isnull()
功能:判断 DataFrame 中的缺失值情况,返回布尔类型 DataFrame。
print(df.isnull().sum()) # 统计每列缺失值数量
概念解析:帮助你快速找到缺失值,为后续数据清洗提供依据。
8. df.fillna()
功能:填充缺失值。
df_filled = df.fillna(0) # 用0填充所有缺失值
概念解析:处理缺失数据的利器,能够让你的数据更加完整。
9. df.groupby()
功能:对数据进行分组操作,常用于统计汇总。
grouped = df.groupby('column_name').sum() # 按列分组求和
概念解析:类似 SQL 的 GROUP BY
操作,常用于数据的聚合统计分析。
10. df.sort_values()
功能:对 DataFrame 按照某一列或多列进行排序。
df_sorted = df.sort_values(by='column_name', ascending=False)
概念解析:快速排序,适合在数据筛选、数据展示时使用。
11. df.apply()
功能:对 DataFrame 中的每个元素或行/列应用一个函数。
df['new_column'] = df['old_column'].apply(lambda x: x**2)
概念解析:apply()
是 Pandas 的“瑞士军刀”,用于灵活的数据转换和处理。
12. df.merge()
功能:合并两个 DataFrame,类似 SQL 中的 JOIN
。
merged_df = pd.merge(df1, df2, on='key_column')
概念解析:数据合并的利器,尤其适合处理多表关联的数据。
13. df.pivot_table()
功能:创建数据透视表。
pivot = df.pivot_table(index='column1', values='column2', aggfunc='sum')
概念解析:类似 Excel 里的数据透视表功能,适合用于复杂的数据汇总分析。
14. df.loc[]
功能:通过标签索引选取行或列。
subset = df.loc[df['age'] > 30]
概念解析:使用标签索引选取特定行或列数据,灵活且常用。
15. df.iloc[]
功能:通过位置索引选取行或列。
subset = df.iloc[0:3, :]
概念解析:与 loc
类似,但 iloc
是通过数字位置索引,特别适合需要按位置选取数据的场景。
16. df.rename()
功能:重命名 DataFrame 的列名。
df_renamed = df.rename(columns={'old_name': 'new_name'})
概念解析:当你需要修改列名,使之更具可读性或语义时,rename()
是必备函数。
17. df.duplicated()
功能:查找重复的行。
duplicates = df[df.duplicated()]
概念解析:用于查找数据中的重复项,是数据清洗过程的重要一步。
18. df.drop_duplicates()
功能:删除重复行。
df_cleaned = df.drop_duplicates()
概念解析:删除重复数据,保证数据的唯一性和准确性。
19. pd.concat()
功能:沿某一轴拼接多个 DataFrame。
df_combined = pd.concat([df1, df2], axis=0) # 纵向拼接
概念解析:适合将多张表数据整合到一起处理,是数据处理的基础工具。
20. df.to_csv()
功能:将 DataFrame 保存为 CSV 文件。
df.to_csv('output.csv', index=False)
概念解析:当你需要将处理好的数据导出保存时,to_csv()
是最常用的导出方法。
案例演示:数据处理流程
我们将这些函数串联起来,演示一个从数据读取到清洗、分析、导出的完整流程:
import pandas as pd
# 读取数据
df = pd.read_csv('data.csv')
# 查看基本信息
print(df.info())
# 数据清洗:删除缺失值、处理重复数据
df_cleaned = df.dropna().drop_duplicates()
# 数据分析:按类别汇总并排序
category_sum = df_cleaned.groupby('category').sum().sort_values(by='value', ascending=False)
category_sum = df_cleaned.groupby('category').sum().sort_values(by='value', ascending=False)
# 导出结果
category_sum.to_csv('cleaned_data.csv', index=True)
category_sum.to_csv('cleaned_data.csv', index=True)
print("数据处理完成,结果已导出!")
评论区