File tree Expand file tree Collapse file tree 2 files changed +18
-0
lines changed
davidkhala/data/frame/pandas Expand file tree Collapse file tree 2 files changed +18
-0
lines changed 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 @@ -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+ key = 'id'
22+ df = pandas .DataFrame ({
23+ key : [1 , 2 ],
24+ 'name' : ['Alice' , 'Bob' ],
25+ 'score' : [85 , 90 ]
26+ }).set_index (key )
27+ new_record = {'name' : 'Charlie' , 'score' : 95 , key :2 }
28+ upsert (df , 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