巧用 idxmin()
和 idxmax()
查找极值
idxmin()
和 idxmax()
函数可快速查找数据帧中特定列的最小和最大值所在的行索引。这对于识别异常值、统计分析或设置阈值非常有用。例如:
df = pd.DataFrame({"年龄": [20, 35, 42, 18, 28]})
最小_年龄_行索引 = df["年龄"].idxmin() # 返回最年轻的行索引
最大_年龄_行索引 = df["年龄"].idxmax() # 返回最老的行索引
使用 eval()
对数据帧应用条件表达式
eval()
函数允许您直接在数据帧上执行条件表达式。这对于复杂的数据操作或快速过滤非常有用。例如:
df = pd.DataFrame({"名称": ["约翰", "玛丽", "汤姆"], "年龄": [20, 35, 42]})
df[df.eval("年龄 > 30")] # 返回年龄大于 30 的行
利用 resample()
对时间序列数据进行重采样
resample()
函数可将时间序列数据重采样至不同的频率(例如,每小时、每天、每月)。这对于时间序列分析、预测和可视化非常有用。例如:
df = pd.DataFrame({"日期": pd.date_range("2023-01-01", "2023-12-31"), "温度": [10, 12, 15, 18, 20]})
df.resample("M").mean() # 计算每月平均温度
应用 groupby()
和 transfORM()
聚合数据
groupby()
和 transform()
函数组合可用于在数据分组内应用聚合函数。这对于计算滚动平均值、标准偏差或其他自定义聚合非常有用。例如:
df = pd.DataFrame({"名称": ["约翰", "玛丽", "汤姆"], "分数": [80, 90, 75]})
df.groupby("名称").transform(lambda x: x.mean()) # 计算每个学生的平均分数
使用 apply()
对数据帧应用自定义函数
apply()
函数允许您将自定义函数应用于数据帧中的每一行或每一列。这对于数据操作、自定义计算或复杂的转换非常有用。例如:
def my_custom_function(row):
return row["年龄"] * 2
df.apply(my_custom_function, axis=1) # 将自定义函数应用于每一行
探索 query()
函数进行快速过滤
query()
函数提供了一种简洁的方式来过滤数据帧,支持以 sql 风格的表达式。这对于快速隔离特定数据点、执行高级过滤或创建子集非常有用。例如:
df = pd.DataFrame({"名称": ["约翰", "玛丽", "汤姆"], "年龄": [20, 35, 42]})
df.query("年龄 > 30") # 过滤出年龄大于 30 的行
利用 set_index()
和 reset_index()
调整索引
set_index()
和 reset_index()
函数可帮助您调整数据帧的索引。这对于将数据分组、设置多级索引或将索引转换为列非常有用。例如:
df = pd.DataFrame({"名称": ["约翰", "玛丽", "汤姆"], "年龄": [20, 35, 42]})
df.set_index("名称") # 将 "名称" 列设置为索引
df.reset_index() # 将索引重置为整数
掌握 melt()
和 pivot()
函数
melt()
和 pivot()
函数可帮助您对数据帧进行重塑和透视。这对于从不同角度查看数据、创建透视表或解压缩嵌套数据非常有用。例如:
df = pd.DataFrame({"学生": ["约翰", "玛丽", "汤姆"], "科目": ["数学", "英语", "科学"], "成绩": [80, 90, 75]})
melted_df = df.melt(id_vars=["学生", "科目"], value_vars=["成绩"]) # 解压缩嵌套数据
pivoted_df = melted_df.pivot(index="科目", columns="学生", values="成绩") # 创建透视表
释放 merge()
函数的强大功能
merge()
函数允许您将多个数据帧合并到一个数据帧中。这对于连接不同数据集、执行联接或查找重复项非常有用。例如:
df1 = pd.DataFrame({"学生": ["约翰", "玛丽"], "年龄": [20, 35]})
df2 = pd.DataFrame({"学生": ["约翰", "汤姆"], "课程": ["数学", "英语"]})
merged_df = pd.merge(df1, df2, on="学生") # 基于 "学生" 列合并两个数据帧
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Python Pandas 黑客代码,探索数据处理新境界!