python-3.x - 如何在中间有 nan 的列表中找到最小和最大元素
问题描述
我有一个数据框,其中有一个名为“score”的列。我正在将该列中的所有元素提取到一个列表中。它之间有'nan's。我希望在每个“nan”发生之前确定元素的最小值和最大值。
我正在考虑将列转换为列表,并遍历列表直到遇到“nan”。但是我如何在nan之前遍历找到最小和最大元素?
这是我编写的将数据框的列转换为列表然后识别“nan”的代码。
score_list = description_df['score'].tolist()
for i in score_list:
print(i)
if math.isnan(i):
print("\n")
假设我的数据看起来像这样,
11.03680137760893
5.351482041139766
10.10019513222711
nan
0.960990030082931
nan
6.46983084276682
32.46794015293125
nan
然后,我应该能够在第一个“nan”出现之前将 max 标识为 11.03680137760893,将 min 标识为 5.351482041139766,将 0.960990030082931 标识为第二个 nan 出现之前和第一个 nan 出现之后的最小值和最大值,以及 32.46794015293125 作为最大值和6.46983084276682 在第二个“nan”之后和第三个“nan”之前的 min
解决方案
您可以创建两个名为min和max的变量,每次找到 nan 并打印(或存储)它们时,它们都以默认值开头。
import sys
score_list = description_df['score'].tolist()
max = sys.float_info.min
min = sys.float_info.max
for i in score_list:
print(i)
if math.isnan(i):
print("max =", max, "min =", min, "\n")
max = sys.float_info.min
min = sys.float_info.max
else:
if i > max:
max = i
if i < min:
min = i
推荐阅读
- python - 训练时自动编码器非常奇怪的损失峰值
- sql - SQL Server:将 YYYYMMDD-HHMM 和 YYYYMMDD 转换为 mm/dd/yyyy hh:mm
- php - 谷歌日历 - 获取对参数没有反应的事件
- reactjs - Tailwind 插件无法激活
- python - Log mel Spectrogram-1 秒音频数据集-语音识别
- entity-framework - 如何在 ownsmany 中映射 TPH
- cassandra - cassandra 绑定变量产生错误:输入“?”没有可行的替代方案
- botframework - 过滤搜索消息扩展
- angular-tree-component - 加载中...标志没有消失
- python - 空列表作为默认参数 - 行为差异