試したこと
Excel側に表示したDataFrame由来のテーブルをグラフにする際、
「グラフのデザイン」⇒ 「データの選択」⇒ 「空白セルの表示方法」で[空白] or [データ要素を線で結ぶ]
を選択しても、空白セルの部分が0として扱われる。
エクセル側で見た目が空欄でも数式が入力されていると空白セルとして扱ってもらえないと思われる。
もしエクセル側で#N/Aとなる値をDataFrameの中に格納できれば0扱いされないと思われるが、その方法をざっと調べてみたが見当たらない(今格納されているのはnumpy.nan)
アプローチ
[1]実はエクセル側のグラフ設定で解決可能
[2]DataFrameに格納してxlwingsで出力すると#N/Aとなる値の作り方
[3]その他(データは複数列あるためDataFrameのdropna以外)
何かうまい方法・アイディアがあれば教えていただきたいです。
追記
「空欄が数式になっている」、とは以下のような状態です。
test_naの中身は以下のように実装しており、これをA1セルにて=test_na()と実行すると上の画像のようになります。
入力したのはA1セルのみですがD6セル含めほかのセルにも=test_na()というのが薄字で表示(画像赤枠)されており、これがグラフにした際に0埋めされてしまう原因ではと考えています。
Python
1import xlwings as xw 2@xw.func 3def test_na(): 4 import pandas as pd 5 import numpy as np 6 df = pd.DataFrame() 7 df["x"] = list(range(0, 10)) 8 df["y1"] = [x - 0.1 for x in df["x"]] 9 df["y2"] = [x + 0.1 if i not in [4, 5, 6] else np.nan for i, x in enumerate(df["x"])] 10 return df