Pandas是Python中用于数据处理和分析的强大库。它提供了灵活的数据结构(如Series和DataFrame),以及用于数据清洗、转换、合并、分析等功能。本文介绍pandas常用的45个小案例,通过这些案例可以帮助大家快速入门pandas。
1. 创建Series
import pandas as pd # 从列表创建Series s1 = pd.Series([1, 2, 3, 4, 5]) # 从字典创建Series s2 = pd.Series({'a': 1, 'b': 2, 'c': 3})
2. 创建DataFrame
# 从字典创建DataFrame data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28], 'City': ['New York', 'London', 'Paris']} df = pd.DataFrame(data) # 从列表创建DataFrame data = [['Alice', 25, 'New York'], ['Bob', 30, 'London'], ['Charlie', 28, 'Paris']] df = pd.DataFrame(data, columns=['Name', 'Age', 'City']) df
3. 读取数据
# 读取CSV文件 df = pd.read_csv('data.csv') # 读取Excel文件 df = pd.read_excel('data.xlsx')
4. 查看数据
# 查看DataFrame的前几行 df.head() # 查看DataFrame的后几行 df.tail() # 查看DataFrame的信息 df.info() # 查看DataFrame的统计摘要 df.describe()
5. 选择数据
# 选择列 df['Name'] # 选择行 df.loc[0] # 选择特定行和列 df.loc[0, 'Name'] # 使用条件选择数据 df[df['Age'] > 25]
6. 修改数据
# 修改列名 df.rename(columns={'Name': 'CustomerName'}, inplace=True) # 修改数据 df.loc[0, 'Age'] = 26
7. 排序数据
# 按列排序 df.sort_values(by='Age', inplace=True) # 按索引排序 df.sort_index(inplace=True)
8. 过滤数据
# 删除重复行 df.drop_duplicates(inplace=True) # 删除缺失值 df.dropna(inplace=True)
9. 分组数据
# 按列分组 grouped = df.groupby('City') # 对分组后的数据进行聚合 grouped.sum()
10. 合并数据
# 连接DataFrame df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]}) df2 = pd.DataFrame({'key': ['B', 'C', 'D'], 'value2': [4, 5, 6]}) merged_df = pd.merge(df1, df2, on='key', how='inner')
11. 数据透视表
# 创建数据透视表 pivot_table = pd.pivot_table(df, values='Age', index='City', columns='Name', aggfunc='mean')
12. 字符串处理
# 将字符串转换为小写 df['Name'].str.lower() # 拆分字符串 df['Name'].str.split(' ', expand=True)
13. 日期处理
# 将字符串转换为日期 df['Date'] = pd.to_datetime(df['Date']) # 提取日期 df['Year'] = df['Date'].dt.year
14. 缺失值处理
# 填充缺失值 df['Age'].fillna(df['Age'].mean(), inplace=True) # 使用插值填充缺失值 df['Age'].interpolate(inplace=True)
15. 数据可视化
import matplotlib.pyplot as plt # 绘制折线图 plt.plot(df['Age'], df['Salary']) plt.show() # 绘制柱状图 df['City'].value_counts().plot(kind='bar') plt.show()
16. apply函数
# 对DataFrame的每一列应用一个函数 df.apply(lambda x: x.mean()) # 对DataFrame的每一行应用一个函数 df.apply(lambda x: x.sum(), axis=1)
17. map函数
# 将Series中的每个元素映射到一个新的值 df['Name'].map({'Alice': 'A', 'Bob': 'B', 'Charlie': 'C'})
18. replace函数
# 替换DataFrame中的特定值 df.replace({'New York': 'NYC', 'London': 'LON'}, inplace=True)
19. cut函数
# 将连续变量划分为离散的区间 pd.cut(df['Age'], bins=[0, 18, 35, 60, 100], labels=['Child', 'Young Adult', 'Adult', 'Senior'])
20. qcut函数
# 将连续变量划分为具有相同数量元素的区间 pd.qcut(df['Age'], q=4, labels=['Q1', 'Q2', 'Q3', 'Q4'])
21. get_dummies函数
# 将分类变量转换为哑变量 pd.get_dummies(df['City'])
22. crosstab函数
# 计算两个分类变量的交叉表 pd.crosstab(df['City'], df['Age'] > 25)
23. pivot函数
# 将DataFrame转换为长格式 df.pivot(index='Name', columns='City', values='Age')
24. melt函数
# 将DataFrame转换为宽格式 pd.melt(df, id_vars=['Name'], value_vars=['Age', 'City'])
25. to_csv函数
# 将DataFrame保存为CSV文件 df.to_csv('output.csv', index=False)
26. to_excel函数
# 将DataFrame保存为Excel文件 df.to_excel('output.xlsx', index=False)
27. to_json函数
# 将DataFrame保存为JSON文件 df.to_json('output.json')
28. to_html函数
# 将DataFrame保存为HTML文件 df.to_html('output.html')
29. to_string函数
# 将DataFrame转换为字符串 df.to_string()
30. to_dict函数
# 将DataFrame转换为字典 df.to_dict()
31. 随机抽样
# 从DataFrame中随机抽取n行 df.sample(n=10) # 从DataFrame中随机抽取指定比例的行 df.sample(frac=0.5)
32. 统计频数
# 统计Series中每个元素的频数 df['City'].value_counts()
33. 众数
# 计算Series的众数 df['City'].mode()
34. 中位数
# 计算Series的中位数 df['Age'].median()
35. 标准差
# 计算Series的标准差 df['Age'].std()
36. 方差
# 计算Series的方差 df['Age'].var()
37. 协方差
# 计算两个Series的协方差 df['Age'].cov(df['Salary'])
38. 相关系数
# 计算两个Series的相关系数 df['Age'].corr(df['Salary'])
39. 累计求和
# 对Series进行累计求和 df['Age'].cumsum()
40. 累计求积
# 对Series进行累计求积 df['Age'].cumprod()
41. 累计最大值
# 对Series进行累计最大值计算 df['Age'].cummax()
42. 累计最小值
# 对Series进行累计最小值计算 df['Age'].cummin()
43. unique(去重)
# 'City'这列不重复值 df['City'].unique()
44. 移动平均
# 计算Series的移动平均值 df['Age'].rolling(window=3).mean()
45. 移动求和
以上是Pandas常用的45个小案例,通过这些案例,您将能够更加熟练地使用Pandas进行数据处理和分析。希望这些案例能对大家有所帮助
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉Python必备开发工具👈
👉Python学习视频合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。