Python pandas で
pandas の
merge関数を 使う
pandas の
- csv_diff.py
# -*- coding: utf-8 - import pandas as pd def execute(): df1 = pd.read_csv('data/before.csv') df2 = pd.read_csv('data/after.csv') diff_df = dataframe_difference(df1, df2) diff_df.to_csv('data/diff.csv') def dataframe_difference(df1, df2, which=None): """Find rows which are different between two DataFrames.""" comparison_df = df1.merge(df2, indicator=True, how='outer') if which is None: diff_df = comparison_df[comparison_df['_merge'] != 'both'] else: diff_df = comparison_df[comparison_df['_merge'] == which] return diff_df # return comparison_df if __name__ == '__main__': execute()
UCI Machine Learning Repository: Wine Data Set の
変更は
csv には
- diff.csv
,fixed acidity,volatile acidity,citric acid,residual sugar,chlorides,free sulfur dioxide,total sulfur dioxide,density,pH,sulphates,alcohol,quality,_merge 5,7.8,0.76,0.04,2.3,0.092,15.0,54.0,0.997,3.26,0.65,9.8,5,left_only 2127,7.8,0.76,0.04,2.3,0.092,1955454545454.0,54.0,0.997,3.26,0.65,9.8,5,right_only
スクリプトと、 動作確認に 使った CSVファイル
Gist に
参考
CSVファイルに
特化した Diff (差分比較)ツール 「CDiff」 | StartHome
Windows10 のフリーソフトで 別に スクリプトを 書かなくても、 実現は できそうです。 aswinkarthik/csvdiff: A fast diff tool for comparing csv files
Goで書かれた コマンドラインの CSV比較ツール CSV diff - Online compare tool
オンラインのCSV比較ツール テーブル内データの
diff - Qiita
SQLで同一レイアウトの テーブルデータを 比較する [python] difflibを
使って、 2つの CSV的な 構造の 変更箇所を 取得する | Reincarnation+
Ptython difflibを使って、 CSVを 比較する csv-diff · PyPI
Pythonで書かれた コマンドラインの CSV比較ツール Comparing Rows Between Two Pandas DataFrames - Hackers and Slackers
Python スクリプトを作る 際に 参考に した 記事。 Pandas/Python: How to concatenate two dataframes without duplicates? - Stack Overflow
pandas のconcat を 使って、 2つの dataframeを 比較する。 pandas.DataFrame, Seriesの
重複した 行を 抽出・削除 | note.nkmk.me
pandas group by の使い方の 説明。
以上です。
コメント