前提・実現したいこと
Excelのシートを比較して差異のあるところを赤色にしたい
styleで色付けできるようなのですが
df2の表に色付けしたい
https://pandas.pydata.org/pandas-docs/version/0.18/style.html
df1
no | name | point | value |
---|---|---|---|
1 | A | 10 | 100 |
2 | B | 11 | 110 |
4 | D | 13 | 130 |
5 | E | 14 | 140 |
df2
no | name | point | value |
---|---|---|---|
1 | A | 10 | 100 |
2 | B | 11 | 200 |
3 | C | 12 | 120 |
4 | D | 15 | 130 |
5 | E | 14 |
色が付けれないので太字にしたのですがわかりにくので
変更箇所は
- 2-value 110 → 200
- 3 列追加
- 4-point 13 → 15
- 5-value 140 → 消す
発生している問題・エラーメッセージ
no | name | point | value |
---|---|---|---|
1 | False | False | False |
2 | False | False | True |
3 | False | False | False |
4 | False | True | False |
5 | False | False | True |
3行目以外のところは差異を抽出できているのですが
3行目の追加したところの差異がうまくいきません
下のように3行目もTrueにするにはどうすればいいのでしょうか
no | name | point | value |
---|---|---|---|
1 | False | False | False |
2 | False | False | True |
3 | True | True | True |
4 | False | True | False |
5 | False | False | True |
該当のソースコード
python
1import pandas as pd 2import io 3 4data = '''\ 5no,name,point,value 61,A,10,100 72,B,11,110 84,D,13,130 95,E,14,140 10''' 11df1 = pd.read_csv(io.StringIO(data), header=0, index_col=0) 12 13data = '''\ 14no,name,point,value 151,A,10,100 162,B,11,200 173,C,12,120 184,D,15,130 195,E,14, 20''' 21df2 = pd.read_csv(io.StringIO(data), header=0, index_col=0) 22 23df3 = df2.copy() 24 25df3.update(df1) 26 27df_diff = df2 != df3 28 29df3[df_diff]
試したこと
df1にdf2をupdateして比較しても行数が違うためエラーになる
python
1df3 = df1.copy() 2df3.update(df2) 3df_diff = df2 != df3
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/21 23:48