解決したいこと:
下記のような、2つのexcelファイルの差分を要素レベルで抽出し、変更の行、列を
{行数、列数}のような形でリストかデータフレームに格納したい
(あとで変更した要素の個所をopenpyxlなどで色を塗るため)
テーブル:
変更前excel例:
フェーズ 作業項目 担当者 計画工数 計画開始日 計画終了日 進捗率
要件定義 顧客A打合せ tanaka 3 2018/5/30 2018/6/1 100
基本設計 A機能基本設計 satou 15 2018/6/1 2018/6/4 20
基本設計 B機能基本、設計 yamada 12 2018/6/2 2018/6/8 30
変更後excel例:
フェーズ 作業項目 担当者 計画工数 計画開始日 計画終了日 進捗率
要件定義 顧客A打合せ tanaka 3 2018/5/30 2018/6/1 100
基本設計 A機能基本設計 satou 15 2018/6/1 2018/6/4 100
基本設計 C機能基本設計 yamada 18 2018/6/5 2018/6/12 10
やってみたこと:
下記のようなコードを描くと、行単位での抽出は可能でした。
import pandas as pd
df1 = pd.read_excel("before.xlsx")
df2 = pd.read_excel("after.xlsx")
df1['比較用の列'] = df1[['フェーズ', '作業項目', '担当者', '計画工数', '計画開始日', '計画終了日', '進捗率']].apply(lambda x: '{}{}{}{}{}{}{}'.format(x[0], x[1], x[2], x[3], x[4], x[5], x[6]), axis=1)
df2['比較用の列'] = df2[['フェーズ', '作業項目', '担当者', '計画工数', '計画開始日', '計画終了日', '進捗率']].apply(lambda x: '{}{}{}{}{}{}{}'.format(x[0], x[1], x[2], x[3], x[4], x[5], x[6]), axis=1)
df2[~df2['比較用の列'].isin(df1['比較用の列'])]
しかし、これだと変更後をベースにした行単位での差異は抽出可能ですが、
出来れば要素単位で抽出したいです。。
基本的な質問かもしれなくて申し訳ありませんが、ご教示いただけないでしょうか。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/09 07:02
2018/06/09 11:20