●やりたいこと
二つのcsvを読み込み,データの差分を計算したいと考えています。
test1またtest2の読み込みを行い、以下のようにtest3に出力したいです。
test1.csv
id | name | data1 | data2 | data3 | ... | data20 |
---|---|---|---|---|---|---|
001 | a | 10 | 20 | 20 | ... | 20 |
002 | b | 10 | 25 | 20 | ... | 20 |
003 | c | 30 | 20 | 15 | ... | 40 |
test2.csv
id | name | data1 | data2 | data3 | ... | data20 |
---|---|---|---|---|---|---|
001 | a | 20 | 25 | 30 | ... | 30 |
002 | b | 10 | 40 | 30 | ... | 30 |
003 | c | 20 | 0 | 5 | ... | 30 |
test3.csv
id | name | data1 | data2 | data3 | ... | data20 |
---|---|---|---|---|---|---|
001 | a | 10 | 5 | 10 | ... | 10 |
002 | b | 0 | 15 | 10 | ... | 10 |
003 | c | -10 | -20 | -10 | ... | -10 |
●検討した内容
・各csvをdf1,df2として格納
・df3にdf1の内容をコピー
・df3['data1']=df2['data1']-df1['data1']
df3['data2']=df2['data2']-df1['data2'] ... のように各カラムごとに計算
python
1import pandas as pd 2df1 = pd.read_csv('test1.csv') 3df2 = pd.read_csv('test2.csv') 4 5df3 = df1 6df3['data1']=df2['data1']-df1['data1'] 7df3['data2']=df2['data2']-df1['data2'] 8. 9. 10df3['data20']=df2['data20']-df1['data20'] 11df3.to_csv('test3.csv')
●質問内容
現状の検討では、data数が増える分とても手間になります。
for文などでまとめて差分を計算できる方法はないでしょうか?
※今回のtestではdata1,data2などという名前にしていますが、実際はばらばらの名前のため、列の行数などを指定し計算できないかと考えています。
回答2件
あなたの回答
tips
プレビュー