Python Pandas DataFrame 常用方法精讲
Pandas DataFrame 提供 cumsum、describe、diff、eval、kurt 等核心方法,分别用于计算累积和、生成描述性统计、计算数值差异、评估字符串表达式及计算分布峭度。内容涵盖各方法的语法结构、参数说明、功能特性及完整代码示例,适用于时间序列分析、数据清洗及统计特征提取场景,助力提升数据处理效率。

Pandas DataFrame 提供 cumsum、describe、diff、eval、kurt 等核心方法,分别用于计算累积和、生成描述性统计、计算数值差异、评估字符串表达式及计算分布峭度。内容涵盖各方法的语法结构、参数说明、功能特性及完整代码示例,适用于时间序列分析、数据清洗及统计特征提取场景,助力提升数据处理效率。

pandas.DataFrame.cumsum(axis=None, skipna=True, *args, **kwargs)
用于计算 DataFrame 中每列或每行的累积和,它返回一个与原 DataFrame 形状相同的新 DataFrame,其中每个值是其前面所有值的和。
返回一个与原 DataFrame 形状相同的新 DataFrame,其中每个元素表示其前面所有元素的和。
import pandas as pd
# 创建一个示例 DataFrame
data = {
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}
df = pd.DataFrame(data)
# 计算累积和
cumsum_df = df.cumsum()
print(cumsum_df)
A B C
0 1 4 7
1 3 9 15
2 6 15 24
pandas.DataFrame.describe(percentiles=None, include=None, exclude=None)
用于生成 DataFrame 各列的描述性统计信息,它提供了数据的汇总,包括计数、均值、标准差、最小值、四分位数和最大值等,该方法对于快速了解数据分布非常有用。
返回一个 DataFrame,其中包含描述性统计信息。对于数值型列,输出包括 count、mean、std、min、25%、50%、75%、max;对于分类 (object) 类型的列,输出包括 count、unique、top、freq。
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [10, 20, 30, 40, 50],
'C': ['a', 'b', 'a', 'b', 'c']
}
df = pd.DataFrame(data)
# 计算描述性统计
description = df.describe()
print(description)
# 仅对数字列进行描述
description_numeric = df.describe(include=['number'])
print(description_numeric)
# 仅对象列进行描述
description_object = df.describe(include=['object'])
print(description_object)
A B
count 5.000000 5.000000
mean 3.000000 30.000000
std 1.581139 15.811388
min 1.000000 10.000000
25% 2.000000 20.000000
50% 3.000000 30.000000
75% 4.000000 40.000000
max 5.000000 50.000000
A B
count 5.000000 5.000000
mean 3.000000 30.000000
std 1.581139 15.811388
min 1.000000 10.000000
25% 2.000000 20.000000
50% 3.000000 30.000000
75% 4.000000 40.000000
max 5.000000 50.000000
C
count 5
unique 3
top a
freq 2
pandas.DataFrame.diff(periods=1, axis=0)
用于计算 DataFrame 中某一列值与前一个 (或指定间隔的) 值之间的差异,这对于时间序列数据分析非常有用,尤其是在需要了解数据如何变化时。
返回一个与原 DataFrame 同大小的 DataFrame,包含每个元素的差异,其中第一个元素将会是 NaN,因为没有前一个值可供计算。
import pandas as pd
data = {
'A': [10, 20, 30, 25, 15],
'B': [100, 200, 300, 250, 150]
}
df = pd.DataFrame(data)
# 计算差异 (默认是前一行)
diff_default = df.diff()
print("默认差异:\n", diff_default)
# 计算与前两行的差异
diff_two_periods = df.diff(periods=2)
print("\n与前两行的差异:\n", diff_two_periods)
# 沿列方向计算差异
diff_axis1 = df.diff(axis=1)
print("\n沿列方向的差异:\n", diff_axis1)
默认差异:
A B
0 NaN NaN
1 10.0 100.0
2 10.0 100.0
3 -5.0 -50.0
4 -10.0 -100.0
与前两行的差异:
A B
0 NaN NaN
1 NaN NaN
2 20.0 200.0
3 5.0 50.0
4 -15.0 -150.0
沿列方向的差异:
A B
0 NaN 90
1 NaN 180
2 NaN 270
3 NaN 225
4 NaN 135
pandas.DataFrame.eval(expr, *, inplace=False, **kwargs)
用于在 DataFrame 上评估一个表达式,并返回一个新的 DataFrame 或对象,该方法能够利用 numexpr(如果可用的话) 来加速计算,适合处理大型数据集的情况。
返回一个新的 DataFrame(如果 inplace=False) 或原 DataFrame(如果 inplace=True),表达式计算的结果。
numexpr 可用的情况下。import pandas as pd
data = {
'A': [1, 2, 3],
'B': [4, 5, 6]
}
df = pd.DataFrame(data)
# 使用 eval 计算新列 C = A + B
df['C'] = df.eval('A + B')
print("新列 C:\n", df)
# 或者在原地修改
df.eval('D = A * B', inplace=True)
print("\n新增列 D,原地修改后:\n", df)
# 使用额外的变量
factor = 10
df['E'] = df.eval('A + B + @factor')
print("\n使用额外变量后的列 E:\n", df)
新列 C:
A B C
0 1 4 5
1 2 5 7
2 3 6 9
新增列 D,原地修改后:
A B C D
0 1 4 5 4
1 2 5 7 10
2 3 6 9 18
使用额外变量后的列 E:
A B C D E
0 1 4 5 4 15
1 2 5 7 10 17
2 3 6 9 18 19
pandas.DataFrame.kurt(axis=0, skipna=True, numeric_only=False, **kwargs)
用于计算 DataFrame 中每一列的峭度 (Kurtosis),峭度是描述概率分布形状的一种统计量,主要用于评估分布的尾部厚度。
返回一个 Series 或 DataFrame,包含每一列或每一行的峭度值。
import pandas as pd
data = {
'A': [4, 5, 8, 9],
'B': [1, 2, None, 4],
'C': [1, 1, 1, 1]
}
df = pd.DataFrame(data)
# 计算每列的峭度
kurtosis = df.kurt()
print("每列的峭度:\n", kurtosis)
# 计算每行的峭度
kurtosis_axis1 = df.kurt(axis=1)
print("每行的峭度:\n", kurtosis_axis1)
每列的峭度:
A -4.3391
B NaN
C 0.0000
dtype: float64
每行的峭度:
0 NaN
1 NaN
2 NaN
3 NaN
dtype: float64

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online