###前提・実現したいこと
初めて二週間の初心者です。
Pythonで2つのCSVファイルを比較して、差分(増えた行)を新たなCSVに吐き出させたいのですがやり方が全く分かりません。。ご教授よろしくお願い致します。
ファイル1:test.csv
ID,Sales,Country
A-01,200,USA
A-02,100,CANADA
B-03,10,USA
B-04,1000,USA
C-01,50,CANADA
ファイル2:test2.csv
ID,Sales,Country
A-01,200,USA
A-02,100,CANADA
B-03,10,USA
B-04,1000,USA
C-01,50,CANADA
C-04,4,MEXICO
新たに作成するファイル3が下記のような結果にしたいと思います。
ファイル3:test3.csv
ID,Sales,Country
C-04,4,MEXICO
とりあえず差分が取得できているか試すためにprint()で表示させる実験をしたのですがうまく行きませんでした。
###発生している問題・エラーメッセージ
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/pandas/core/ops.py", line 1202, in na_op
result = expressions.evaluate(op, str_rep, x, y, **eval_kwargs)
File "/usr/local/lib/python3.6/site-packages/pandas/core/computation/expressions.py", line 204, in evaluate
return _evaluate(op, op_str, a, b, **eval_kwargs)
File "/usr/local/lib/python3.6/site-packages/pandas/core/computation/expressions.py", line 64, in _evaluate_standard
return op(a, b)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test.py", line 5, in <module>
print(G2-G)
File "/usr/local/lib/python3.6/site-packages/pandas/core/ops.py", line 1260, in f
return self._combine_frame(other, na_op, fill_value, level)
File "/usr/local/lib/python3.6/site-packages/pandas/core/frame.py", line 3906, in _combine_frame
result = dict([(col, f(col)) for col in this])
File "/usr/local/lib/python3.6/site-packages/pandas/core/frame.py", line 3906, in <listcomp>
result = dict([(col, f(col)) for col in this])
File "/usr/local/lib/python3.6/site-packages/pandas/core/frame.py", line 3902, in f
r = _arith_op(this[col].values, other[col].values)
File "/usr/local/lib/python3.6/site-packages/pandas/core/frame.py", line 3894, in _arith_op
return func(left, right)
File "/usr/local/lib/python3.6/site-packages/pandas/core/ops.py", line 1221, in na_op
result[mask] = op(xrav, yrav)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
###該当のソースコード
import pandas as pd
G = pd.read_csv('test.csv')
G2 = pd.read_csv('test2.csv')
print(G2-G)
###試したこと
課題に対してアプローチしたことを記載してください
色々とサーチしたのですが、どう書いていいか分からずここにきました、、
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
python 3.6.4
MAC

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