为了账号安全,请及时绑定邮箱和手机立即绑定

将 -infinty 值和无穷大值替换为数据帧的最大值和最小值

将 -infinty 值和无穷大值替换为数据帧的最大值和最小值

慕码人2483693 2023-12-08 17:06:34
我有一个数据框,其中有 infinte 和 -infinite 值,我想将其替换为数据框的最大值和最小值,我可以将 infinte 值替换为 max,但无法对 -infite 值执行相同的操作import pandas as pd import numpy as np  a = float('Inf')b = float('-Inf')v = [1,2,5,a,b,10,5,a,5,100,2,b,b]  df = pd.DataFrame({'Col_A': v})将无限值替换为最大值df['Col_A'].replace([np.inf],max(df['Col_A'].replace(np.inf, np.nan)),inplace=True)df 的片段我想将 inf 值替换为 100,因为这是最大值,将 -inf 替换为 1,因为如果在一个逻辑中可能,则将 -inf 替换为最小值,并且这些值不应被硬编码
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

你就快到了:

df['Col_A'].replace([-np.inf],min(df['Col_A'].replace(-np.inf, 
np.nan)),inplace=True)


查看完整回答
反对 回复 2023-12-08
?
慕斯709654

TA贡献1840条经验 获得超5个赞

Min/Max 可以返回 inf 值作为 min/max,因此您可以过滤掉然后替换:

v1 = df.loc[~df['Col_A'].isin([np.inf,-np.inf]),'Col_A'].max()
v2 = df.loc[~df['Col_A'].isin([np.inf,-np.inf]),'Col_A'].min()
df['Col_A'] = df['Col_A'].replace([np.inf,-np.inf], [v1,v2])
df


查看完整回答
反对 回复 2023-12-08
  • 2 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信