df
にインデックス(キー)をつけておくとよいです。
以下のようにdf.loc[key] = val
で値をセットすると、キーの重複の有無によって自動的に追加または更新されます。
Python
1import pandas as pd
2from io import StringIO
3
4# テストデータ
5s = """ID,x,y,v1,v2
6A,1,1,10,100
7B,2,2,20,200
8C,3,3,30,300"""
9df = pd.read_csv( StringIO(s), index_col=['ID','x','y'])
10print(df)
11"""
12 v1 v2
13ID x y
14A 1 1 10 100
15B 2 2 20 200
16C 3 3 30 300
17"""
18
19for key, val in [[('D',4,4), (40,400)], # 追加される
20 [('A',1,1), (11,111)]]:# 更新される
21 print( key, val)
22 df.loc[key] = val
23
24print(df)
25"""
26 v1 v2
27ID x y
28A 1 1 11 111
29B 2 2 20 200
30C 3 3 30 300
31D 4 4 40 400
32"""
###2つのデータフレームを結合
Python
1import pandas as pd
2from io import StringIO
3
4# テストデータ
5s = """ID,x,y,v1,v2
6A,1,1,10,100
7B,2,2,20,200
8C,3,3,30,300"""
9df1 = pd.read_csv( StringIO(s), index_col=['ID','x','y'])
10
11s = """ID,x,y,v1,v2
12D,4,4,40,400
13A,1,1,11,111"""
14df2 = pd.read_csv( StringIO(s), index_col=['ID','x','y'])
15
16df = pd.concat([df1, df2]).groupby(df1.index.names).last()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/07 15:06
2020/07/07 23:24