看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在 pandas 中,eq()
、ne()
、le()
、lt()
、ge()
和 gt()
是用于比较操作的函数。这些函数可以用于 DataFrame 或 Series 的元素与指定值或另一个 DataFrame/Series 进行逐元素比较,并返回布尔值(True 或 False)的 DataFrame 或 Series。
eq、ne、le、lt、ge、gt 比较运算,相当于这些运算符号 ==
,!=
,<=
,<
,>=
,>
,支持选择轴(行或列)和级别进行比较。
DataFrame.eq(other, axis='columns', level=None)
DataFrame.ne(other, axis='columns', level=None)
DataFrame.le(other, axis='columns', level=None)
DataFrame.lt(other, axis='columns', level=None)
DataFrame.ge(other, axis='columns', level=None)
DataFrame.gt(other, axis='columns', level=None)
不匹配的索引标签将合并在一起。NaN 值被认为是不同的(即NaN!=NaN)。
方法 | 符号 | 英文 | 意义 |
---|---|---|---|
eq() |
== |
Equal | 等于 |
ne() |
!= |
Not Equal | 不等于 |
le() |
<= |
Less than or Equal | 小于等于 |
lt() |
< |
Less Than | 小于 |
ge() |
>= |
Greater than or Equal | 大于等于 |
gt() |
> |
Greater Than | 大于 |
other
:要与 DataFrame 或 Series 进行比较的对象。可以是标量值、Series、DataFrame 或者列表等。axis
:指定比较的轴,默认为 'columns'
。当使用 'index'
时,将按行进行比较;当使用 'columns'
时,将按列进行比较。level
:用于在 MultiIndex
对象中指定比较的层级,默认为 None
。这些方法返回与原始 DataFrame 或 Series 形状相同的布尔型 DataFrame 或 Series,表示每个元素的比较结果。
这些比较方法在数据筛选、条件判断和数据清洗等场景中非常有用。例如,可以用来筛选出符合某些条件的行或列。
df = pd.DataFrame({'cost': [250, 150, 100],
'revenue': [100, 250, 300]},
index=['A', 'B', 'C'])
df
'''
cost revenue
A 250 100
B 150 250
C 100 300
'''
使用运算符或方法与标量进行比较:
df == 100
'''
cost revenue
A False True
B False False
C True False
'''
df.eq(100)
'''
cost revenue
A False True
B False False
C True False
'''
当other是Series时,DataFrame的列与other和broadcast的索引对齐:
df != pd.Series([100, 250], index=["cost", "revenue"])
'''
cost revenue
A True True
B True False
C False True
'''
使用以下方法控制广播轴:
df.ne(pd.Series([100, 300], index=["A", "D"]), axis='index')
'''
cost revenue
A True False
B True True
C True True
D True True
'''
当与任意序列进行比较时,列的数量必须与其他序列中的数字元素匹配:
df == [250, 100]
'''
cost revenue
A True True
B False False
C False False
'''
使用以下方法控制轴:
df.eq([250, 250, 100], axis='index')
'''
cost revenue
A True False
B False True
C True False
'''
与不同形状的DataFrame进行比较。
other = pd.DataFrame({'revenue': [300, 250, 100, 150]},
index=['A', 'B', 'C', 'D'])
other
'''
revenue
A 300
B 250
C 100
D 150
'''
df.gt(other)
'''
cost revenue
A False False
B False False
C False True
D False False
'''
按级别与MultiIndex进行比较。
df_multindex = pd.DataFrame({'cost': [250, 150, 100, 150, 300, 220],
'revenue': [100, 250, 300, 200, 175, 225]},
index=[['Q1', 'Q1', 'Q1', 'Q2', 'Q2', 'Q2'],
['A', 'B', 'C', 'A', 'B', 'C']])
df_multindex
'''
cost revenue
Q1 A 250 100
B 150 250
C 100 300
Q2 A 150 200
B 300 175
C 220 225
'''
df.le(df_multindex, level=1)
'''
cost revenue
Q1 A True True
B True True
C True True
Q2 A False True
B True False
C True False
'''
我们构造一个简单的 DataFrame,用于演示这些比较方法的使用。
import pandas as pd
# 构造示例数据
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1],
'C': [10, 20, 30, 40, 50]
}
df = pd.DataFrame(data)
# 输出示例数据
print("示例数据:\n", df)
eq()
等于比较eq()
方法用于判断 DataFrame 中的元素是否等于指定值或另一个 DataFrame/Series 中的对应元素。
result_eq = df.eq(3)
print("eq() 等于比较结果:\n", result_eq)
输出:
'''
示例数据:
A B C
0 1 5 10
1 2 4 20
2 3 3 30
3 4 2 40
4 5 1 50
eq() 等于比较结果:
A B C
0 False False False
1 False False False
2 True True False
3 False False False
4 False False False
'''
ne()
不等于比较ne()
方法用于判断 DataFrame 中的元素是否不等于指定值或另一个 DataFrame/Series 中的对应元素。
result_ne = df.ne(3)
print("ne() 不等于比较结果:\n", result_ne)
输出:
'''
ne() 不等于比较结果:
A B C
0 True True True
1 True True True
2 False False True
3 True True True
4 True True True
'''
le()
小于等于比较le()
方法用于判断 DataFrame 中的元素是否小于等于指定值或另一个 DataFrame/Series 中的对应元素。
result_le = df.le(3)
print("le() 小于等于比较结果:\n", result_le)
输出:
'''
le() 小于等于比较结果:
A B C
0 True False True
1 True False True
2 True True True
3 False True False
4 False True False
'''
lt()
小于比较lt()
方法用于判断 DataFrame 中的元素是否小于指定值或另一个 DataFrame/Series 中的对应元素。
result_lt = df.lt(3)
print("lt() 小于比较结果:\n", result_lt)
输出:
'''
lt() 小于比较结果:
A B C
0 True False True
1 True False True
2 False False False
3 False True False
4 False True False
'''
ge()
大于等于比较ge()
方法用于判断 DataFrame 中的元素是否大于等于指定值或另一个 DataFrame/Series 中的对应元素。
result_ge = df.ge(3)
print("ge() 大于等于比较结果:\n", result_ge)
输出:
'''
ge() 大于等于比较结果:
A B C
0 False True False
1 False True False
2 True True True
3 True False True
4 True False True
'''
gt()
大于比较gt()
方法用于判断 DataFrame 中的元素是否大于指定值或另一个 DataFrame/Series 中的对应元素。
result_gt = df.gt(3)
print("gt() 大于比较结果:\n", result_gt)
输出:
'''
gt() 大于比较结果:
A B C
0 False True False
1 False True False
2 False False False
3 True False True
4 True False True
'''
这些比较方法在数据分析中非常常用,尤其是在需要进行条件过滤和判断时。通过这些方法,可以轻松地对 DataFrame 或 Series 中的数据进行逐元素比较,进而筛选出符合条件的数据。
更新时间:2024-08-10 19:36:45 标签:pandas python 比较 eq ne le lt ge gt