pandas
DataFrame
で作業するときに問題が発生しています。 DataFrame
次の点を考慮 Pandas DataFrameリセットキャッシュ
を今、私は、複数のサブプロットをプロットするseaborn
FacetGrid
を使用した場合。この場合、サブプロットは列scale
に基づいています。
シンプルコード:
print(df['scale'].value_counts())
print(set(df['scale']))
が生成されます。生成されたフィギュアの
weak 960
strong 890
Name: scale, dtype: int64
{'weak', 'strong'}
例:
の列scale
で唯一の2つのユニークな値があるので、それは正しくのみ2サブプロットを作成します
g = seaborn.FacetGrid(df, row='scale')
g.map(plt.plot, 'proc', 'wall_avg')
行をフィルタリングしようとすると問題が発生します。列scale
の値がweak
のすべての行をフィルタリングすると、1つのサブプロットだけで図が得られるはずですが、DataFrame
には他のscale
は含まれていませんが、まだ2つのサブプロットがあります。
# filter rows
df = df[['scale'] == 'weak']
# print details about column scale
print(df['scale'].value_counts())
print(set(df['scale']))
が生成されます。
weak 960
strong 0
Name: scale, dtype: int64
{'weak'}
と図を結果は、空のサブプロットが含まれています
この動作が正しいものである場合、私は知らないが、私が好むだろう空のサブプロットはありません。 DataFrame
をリロードする方法はありますか? reset_index
は動作しません。
これまでのところ、私はDataFrame
をcsvに保存して再読み込みすることができます。
ありがとうございました!
'print(df ['scale'] .dtype)'とは何ですか? – jezrael
私は 'category' dtype – x3mspeedy
を使用しています。次に、答えをチェックしてください。それはまさに必要なものです。 – jezrael