看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在解决最强相关性的问题中,核心的工作就是找到 DataFrame 中最大值的标签,除了以上方法,还有没有其他办法可以完成这个工作呢?
先看看以下数据:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 4, 5, -6],
'B': [2, -1, 8, 2, 1],
'C': [2, -1, 8, 2, 1]
},
index=['x', 'y', 'z', 'h', 'i']
)
df
'''
A B C
x 1 2 2
y 2 -1 -1
z 4 8 8
h 5 2 2
i -6 1 1
'''
先取到 DataFrame 中的最大值:
# 得到全局最大值
df.max().max()
# 8
查出最大值,返回的 DataFrame 中非最大值的值都显示为 NaN:
df[df==df.max().max()]
'''
A B C
x NaN NaN NaN
y NaN NaN NaN
z NaN 8.0 8.0
h NaN NaN NaN
i NaN NaN NaN
'''
将全为空的行和列删除:
# 找到最大值索引位
(
df[df == df.max().max()] # 查出最大值
.dropna(how='all') # 删除全为空的行
.dropna(how='all', axis=1) # 删除全为空的列
)
'''
B C
z 8.0 8.0
'''
可见有两个最大值,在同一行的两列中,最后用 axes 得到轴信息:
# 找到最大值索引位
(
df[df == df.max().max()] # 查出最大值
.dropna(how='all') # 删除全为空的行
.dropna(how='all', axis=1) # 删除全为空的列
.axes
)
# [Index(['z'], dtype='object'), Index(['B', 'C'], dtype='object')]
这样,我们用另一种方法确定了最大值在 DataFrame 中的位置。这可能不是最优解,但为我们提供了另一个思路,帮助我们熟悉了相关方法的用法。
(完)
注:此案例收录在《深入浅出Pandas:利用Python进行数据处理与分析》17.2.5 小节。
更新时间:Aug. 18, 2024, 4:12 p.m. 标签:pandas python 最大值