目录
1. pandas.drop()
在数据清洗时,需要按照一定条件删除某些数据样本,利用布尔表达式、索引和 drop 方法可以实现。
df = df.drop(df[<some boolean condition>].index)
一个例子,删除 dataframe 中满足条件 x 所在的行:
df_clear = df.drop(df[df['x']<0.01].index)
# 也可以使用多个条件
df_clear = df.drop(df[(df['x']<0.01) | (df['x']>10)].index) # 删除 x 小于 0.01 或大于 10 的行
# 删除符合条件的指定行,并替换原始df
df.drop(df[(df.score < 50) & (df.score > 20)].index, inplace=True)
删除不需要的列
# 删除列名为C的列,并替换原始df
df.drop(columns=['C'], inplace=True)
train.drop(["Cabin", "Ticket", "PassengerId", "Name"], axis = 1, inplace=True)
# axis = 1 表示按列删除
# inplace=True是指原地操作的意思,不创建新的,直接在原数据中改变
删除不需要的行
index = train[train["Fare"] > 450 ].index
# 获取Fare列的值大于450的行
# .index获取行的行号
# print(index)
train.drop(index, axis = 0, inplace=True)
# 删掉对应的行号
2. 箱型图
3. 5 倍法
“五倍法”(Five-number summary)是一种描述性统计的方法,它提供了一组五个关键数据点来概括一组数据的分布。这五个数分别是:
- 最小值(Minimum):数据集中的最小数值。
- 第一四分位数(Q1,Lower Quartile):将数据集分为四等分后,位于第一切分点的值,表示了全部数据中最低的25%。
- 中位数(Median,Q2):数据集的中间值,将数据分为两个相等的部分,一半的数据值比中位数大,另一半的数据值比中位数小。
- 第三四分位数(Q3,Upper Quartile):同样是数据集分为四等分后,位于第三切分点的值,表示了全部数据中最高的25%。
- 最大值(Maximum):数据集中的最大数值。
在统计分析中,这五个数值可以提供数据分布的一个快速概览。通过这些数值,可以估计数据的集中趋势、离散程度和偏态等特性。例如,中位数显示了数据的中心位置,四分位数间距(IQR = Q3 - Q1)提供了关于数据变异性的信息,而最大值和最小值则表明了数据的范围。
需要注意的是,五倍法和截图中提到的“5倍IQR”是两个不同的概念。截图中的“5倍IQR”似乎是在描述一个用于处理异常值的特定规则,即在特定上下文中用于替换连续异常值的一个特定数值,这个值是基于第一四分位数减去5倍的IQR来计算的。这并不是一个标准的统计术语,而是在特定数据处理上下文中采用的一种约定。
"五倍法"通常指的是五数概括法(Five-number summary),这是描述性统计学中用来描述数据集分布的五个关键分位数。以下是一个高效的Python代码示例,用于计算一个数据集的五数概括法:
import numpy as np
def five_number_summary(data):
"""
Calculate the five-number summary for a dataset.
:param data: List or array-like numerical data
:return: Dictionary with min, Q1, median, Q3, and max
"""
# Ensure the data is in a numpy array for efficient computation
data = np.array(data)
# Sort the data
data_sorted = np.sort(data)</