Pandas 是 Python 最常用的数据处理库之一,提供了丰富的数据结构和数据分析工具。本文将介绍 Pandas 最常用的基础操作,帮助你快速上手数据处理和分析。
导入库并创建 DataFrame
首先,我们需要导入 Pandas 库,并创建一个 DataFrame。这里我们使用字典来创建一个简单的 DataFrame:
import pandas as pd
data = {
'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [25, 30, 35, 40],
'性别': ['男', '女', '男', '女']
}
df = pd.DataFrame(data)
1. 查看数据前 5 行
print(df.head()) # 输出前 5 行数据
2. 查看数据信息
print(df.info()) # 输出数据的信息,如数据类型、非空值数量等
3. 查看数据描述性统计信息
print(df.describe()) # 输出数据的描述性统计信息,如均值、标准差等
4. 查看数据列名
print(df.columns) # 输出数据的列名
5. 查看数据索引
print(df.index) # 输出数据的索引
6. 按列名选择数据
print(df['姓名']) # 选择 '姓名' 列的数据
7. 按列名修改数据
df['姓名'] = ['张三丰', '李四光', '王五岳', '赵六令']
print(df) # 修改 '姓名' 列的数据
8. 按条件筛选数据
filtered_df = df[df['年龄'] > 30]
print(filtered_df) # 筛选出 '年龄' 大于 30 的数据
9. 按条件修改数据
df.loc[df['年龄'] > 30, '年龄'] = 31
print(df) # 修改 '年龄' 大于 30 的数据
10. 按条件删除数据
df = df[df['年龄'] != 31]
print(df) # 删除 '年龄' 等于 31 的数据
11. 添加新列
df['城市'] = ['北京', '上海', '广州', '深圳']
print(df) # 添加 '城市' 列
12. 删除列
df = df.drop('城市', axis=1)
print(df) # 删除 '城市' 列
13. 重命名列
df = df.rename(columns={'姓名': '名字'})
print(df) # 重命名 '姓名' 列为 '名字'
14. 设置索引
df = df.set_index('名字')
print(df) # 将 '名字' 列设为索引
15. 重置索引
df = df.reset_index()
print(df) # 重置索引
16. 排序
sorted_df = df.sort_values(by='年龄')
print(sorted_df) # 按 '年龄' 列排序
17. 分组
grouped_df = df.groupby('性别')
print(grouped_df.mean()) # 按 '性别' 列分组并计算均值
18. 合并
data2 = {'名字': ['孙悟空', '猪八戒'], '年龄': [500, 400], '性别': ['男', '男']}
df2 = pd.DataFrame(data2)
merged_df = pd.concat([df, df2])
print(merged_df) # 合并两个 DataFrame
19. 插入数据
df.loc[1.5] = ['唐僧', 25, '男']
df = df.sort_index().reset_index(drop=True)
print(df) # 在索引 1 和 2 之间插入一行数据
20. 删除数据
df = df.drop([1, 2])
print(df) # 删除索引为 1 和 2 的行
21. 填充缺失值
df['年龄'] = df['年龄'].fillna(30)
print(df) # 填充 '年龄' 列的缺失值
22. 去除重复值
df = df.drop_duplicates()
print(df) # 去除重复行
23. 数据透视表
pivot_table = pd.pivot_table(df, values='年龄', index='名字', columns='性别')
print(pivot_table) # 创建数据透视表
24. 数据转置
transposed_df = df.T
print(transposed_df) # 转置 DataFrame
25. 数据合并(按行)
df3 = pd.DataFrame({'名字': ['白龙马'], '年龄': [300], '性别': ['男']})
merged_df = pd.merge(df, df3, on='名字')
print(merged_df) # 按 '名字' 列合并两个 DataFrame
26. 数据合并(按列)
merged_df = pd.merge(df, df3, left_index=True, right_index=True)
print(merged_df) # 按索引合并两个 DataFrame
27. 数据连接(按行)
connected_df = pd.concat([df, df3])
print(connected_df) # 按行连接两个 DataFrame
28. 数据连接(按列)
connected_df = pd.concat([df, df3], axis=1)
print(connected_df) # 按列连接两个 DataFrame
29. 数据切片
sliced_df = df[1:3]
print(sliced_df) # 切片 DataFrame
30. 数据迭代
for index, row in df.iterrows():
print(row) # 迭代 DataFrame 的每一行
31. 数据过滤
filtered_df = df[(df['年龄'] > 25) & (df['性别'] == '男')]
print(filtered_df) # 过滤出符合条件的数据
32. 数据替换
df['性别'] = df['性别'].replace('男', 'M')
print(df) # 替换 '性别' 列的值
33. 数据映射
mapping = {'男': 'M', '女': 'F'}
df['性别'] = df['性别'].map(mapping)
print(df) # 映射 '性别' 列的值
34. 数据透视表(多重索引)
pivot_table = pd.pivot_table(df, values='年龄', index=['名字', '性别'])
print(pivot_table) # 创建多重索引的透视表
35. 数据透视表(聚合函数)
pivot_table = pd.pivot_table(df, values='年龄', index='名字', columns='性别', aggfunc='mean')
print(pivot_table) # 创建带有聚合函数的透视表
总结
本文介绍了 Pandas 常用的 35 个基础操作,包括数据筛选、修改、删除、分组、合并、连接、透视表等。通过这些操作,你可以对数据进行有效的处理和分析。在实际应用中,可以根据具体需求选择合适的操作来满足你的需求。