Pandas速成指南:60个案例搞定数据分析!
本文介绍pandas常用的60个小案例,通过这些案例可以帮助大家快速入门pandas。
·

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!
Pandas是Python中用于数据处理和分析的强大库。它提供了灵活的数据结构(如Series和DataFrame),以及用于数据清洗、转换、合并、分析等功能。本文介绍pandas常用的60个小案例,通过这些案例可以帮助大家快速入门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.移动求和
# 计算Series的移动和
df['Age'].rolling(window=3).sum()
46.窗口函数
# 使用窗口函数计算Series的排名
df['Age'].rank()
47.时间序列
# 创建一个时间序列
dates = pd.date_range('2023-01-01', periods=10)
ts = pd.Series(range(10), index=dates)
48.重采样
# 对时间序列进行重采样
ts.resample('D').mean()
49.频率转换
# 将时间序列的频率转换为其他频率
ts.asfreq('H', method='ffill')
50.时区转换
# 将时间序列的时区转换为其他时区
ts.tz_localize('UTC').tz_convert('US/Eastern')
51.字符串索引
# 使用字符串作为索引
s = pd.Series([1, 2, 3], index=['a', 'b', 'c']) s['a']
52.多级索引
# 创建一个多级索引
index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)], names=['Level1', 'Level2'])
s = pd.Series([1, 2, 3, 4], index=index) s['A']
53.索引切片
# 对索引进行切片
s['A': 'B']
54.索引选择
# 使用索引选择数据
s.loc[('A', 1)]
55.索引排序
# 对索引进行排序
s.sort_index()
56.索引重置
# 重置索引
df.reset_index(inplace=True)
57.设置索引
# 设置索引
df.set_index('Name', inplace=True)
58.层次化索引
# 创建层次化索引
df.set_index(['City', 'Name'], inplace=True)
59.交换索引级别
# 交换层次化索引的级别
df.swaplevel(0, 1)
60.堆叠和取消堆叠
# 堆叠索引
stacked = df.stack()
# 取消堆叠索引
stacked.unstack()
- 以上是Pandas常用的60个小案例,通过这些案例,您将能够更加熟练地使用Pandas进行数据处理和分析。希望这些案例能对大家有所帮

总结
- 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
- 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!
- ① Python所有方向的学习路线图,清楚各个方向要学什么东西
- ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
- ③ 100多个Python实战案例,学习不再是只会理论
- ④ 华为出品独家Python漫画教程,手机也能学习
可以扫描下方二维码领取【保证100%免费】
更多推荐
所有评论(0)