web-dev-qa-db-ja.com

TypeError:ufunc'isnan 'は入力タイプではサポートされていません-seabornHeatmap

海のヒートマップをプロットしようとするとエラーが発生します

TypeError:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした

私のコードは次のとおりです

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.read_table(r"C:\Results.CST", sep='\s+',header=11, engine = 'python')
df2 = cridim[['Bottom','Location_X','Location_Y',]]  # Bottom , location X and Location  Y are my column labels
df3 = df2.pivot('Location_X','Location_Y','Bottom') # create pivot table for results

plt.figure(figsize=(15,15)) 
pivot_table = df3
plt.xlabel('X',size = 10) 
plt.ylabel('Y',size = 10) 
plt.title('btm CD',size = 10) 
sns.heatmap(pivot_table, annot=False, fmt=".1f", linewidths = 0.5, square = True, cmap = 'RdYlBu', vmin=2900, vmax = 3500) 
plt.show()

私のデータは77行77列で構成されており、そのうち651のみがデータを持っており、他の空の座標はデータフレームで「なし」と示されています

海生ヒートマップがプロットできるデータの数に制限はありますか?

上記のエラーが発生する理由がわかりません。csvファイルに書き込んだのですが、問題ありません。

さらに、値を「0」と空の文字列に置き換えようとしましたが、それでもTypeerrorが返されます

9
SA.

私の場合、DataFrameにはNan値がありませんでしたが、データ型はobject型でした。私にとってうまくいったのは、df = df.astype(float)を使用してデータを強制的に浮動させることでした。その後、海上ヒートマップを使用したプロットが可能になりました。

0