File tree Expand file tree Collapse file tree
davidkhala/data/frame/pandas Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ def upsert (df , primary_key :str , record :dict ):
2+ df .loc [record [primary_key ]] = record
3+ return df
Original file line number Diff line number Diff line change 11[project ]
22name = " davidkhala.data.frame"
3- version = " 0.0.7 "
3+ version = " 0.0.8 "
44description = " "
55authors = [{ name = " David Liu" , email = " david-khala@hotmail.com" }]
66requires-python = " >=3.10"
Original file line number Diff line number Diff line change @@ -15,6 +15,21 @@ def test_duckDB(self):
1515 conn .register ("airports" , df_airports )
1616 conn .close ()
1717
18+ class SyntaxTestCase (unittest .TestCase ):
19+ def test_upsert (self ):
20+ from davidkhala .data .frame .pandas import upsert
21+ prim_key = 'id'
22+ df = pandas .DataFrame ({
23+ prim_key : [1 , 2 ],
24+ 'name' : ['Alice' , 'Bob' ],
25+ 'score' : [85 , 90 ]
26+ }).set_index (prim_key )
27+ new_record = {'name' : 'Charlie' , 'score' : 95 , prim_key :2 }
28+ upsert (df , prim_key , new_record )
29+
30+ self .assertEqual (95 , df .at [2 , 'score' ])
31+
32+
1833
1934
2035if __name__ == '__main__' :
You can’t perform that action at this time.
0 commit comments