如何处理Seaborn绘制pairplot时的无穷值警告?
解决Seaborn pairplot的无穷值警告问题
这个警告是因为Seaborn内部依赖的use_inf_as_na参数已被pandas弃用,官方要求提前把无穷值转换成NaN再处理。按以下步骤修改代码即可解决:
- 导入numpy(需用到
np.inf和np.nan) - 将数据中的正无穷、负无穷全部替换为NaN
- 可选:删除包含NaN的行(如果需要保留行,也可以用均值/中位数填充NaN,不过pairplot场景下删除缺失行最直接)
- 执行pairplot绘制
修改后的完整代码:
import seaborn as sns import matplotlib.pyplot as plt import numpy as np import pandas as pd # 替换无穷值为NaN clean_df = df_train[cols].replace([np.inf, -np.inf], np.nan) # 删除含NaN的行(若需保留行,可替换为填充逻辑:clean_df = clean_df.fillna(clean_df.mean())) clean_df = clean_df.dropna() # 绘制pairplot sns.pairplot(clean_df, height=2.5) plt.show()
若不想删除行,也可以用填充方式处理NaN,比如用列的均值填充:
clean_df = clean_df.fillna(clean_df.mean())
这样处理后,Seaborn就能正常绘制pairplot,不会再弹出弃用警告。
内容的提问来源于stack exchange,提问作者José Antonio Pino Morales
相关产品推荐
相关产品推荐

