前提
Excelでユーザが入力したデータのテーブルを読み取って、前処理をかけるようなプログラムを作りたいと思っています。
実現したいこと
Excelでユーザが入力したデータを取り込む際、しばしばShiftキーで改行コードを含めた数値を入力してくることがあります。例えば、下記のような例だと、C2セルに2\n5とありますが、25を意図して入れているのか、2を意図して入れているのか、もしくは2つの値を入れたいのかがよくわかりません。
そのため、改行コードを判別して赤い文字色にしたdataframeを返し、それを結果のExcelとして出力し、
ユーザに修正してもらおうと考えています。
発生している問題・エラーメッセージ
しかしながら、改行コードを含めた文字を取り出そうとapply mapを使ったところ、下記のエラーが出力されてしまいます。エラーコードの意味を調べたのですが、どのように修正したらよいのかがよくわからず、
お知恵を拝借いただけると幸甚です。(apply mapを使う方法にこだわるつもりはなく、あくまでも、
取り込んだデータの中で、改行コードを含む場所がどこかをユーザに指し示すことができる方法が知りたいです。)
TypeError: expected string or bytes-like object
<pandas.io.formats.style.Styler at 0x2793eb65e40>
該当のソースコード
Python
1df = pd.read_excel("aaa.xlsx") 2 3# マイナスの値を赤くする(apply mapの例) 4def color_negative_red(val): 5 color = 'red' if val < 0 else 'black' 6 return 'color: %s' % color 7 8# 改行コードを含む文字の値を赤くする 9def color_kaigyou_red(val): 10 color = 'red' if re.findall('(<a(.|\s)*?</a>)', val) else 'black' 11 return 'color: %s' % color 12 13df.style.applymap(color_kaigyou_red) # 2\n5のような改行コードがあるセルがあると動作しない。 14 15df.to_excel("異常データ結果.xlsx")**ボールドテキスト** 16
試したこと
pandasで、テーブルに色を付ける方法などを調査した。
補足情報(FW/ツールのバージョンなど)
python 3.10.5
pandas 1.4.4

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/12 10:46
2023/01/12 14:28