Skip to content
This repository was archived by the owner on Feb 2, 2024. It is now read-only.

Commit 401313c

Browse files
authored
Re-implement df._set_column based on new strcture (#850)
1 parent ebb66e8 commit 401313c

2 files changed

Lines changed: 12 additions & 8 deletions

File tree

‎sdc/datatypes/hpat_pandas_dataframe_functions.py‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2615,9 +2615,11 @@ def df_add_column_codelines(self, key):
26152615

26162616
results = []
26172617
for i, col in enumerate(self.columns):
2618+
col_loc = self.column_loc[col]
2619+
type_id, col_id = col_loc.type_id, col_loc.col_id
26182620
res_data = f'res_data_{i}'
26192621
func_lines += [
2620-
f' data_{i} = self._data[{i}]',
2622+
f' data_{i} = self._data[{type_id}][{col_id}]',
26212623
f' {res_data} = pandas.Series(data_{i}, index=res_index, name="{col}")',
26222624
]
26232625
results.append((col, res_data))
@@ -2643,7 +2645,9 @@ def df_replace_column_codelines(self, key):
26432645
if literal_key == col:
26442646
func_lines += [f' data_{i} = value']
26452647
else:
2646-
func_lines += [f' data_{i} = self._data[{i}]']
2648+
col_loc = self.column_loc[col]
2649+
type_id, col_id = col_loc.type_id, col_loc.col_id
2650+
func_lines += [f' data_{i} = self._data[{type_id}][{col_id}]']
26472651

26482652
res_data = f'res_data_{i}'
26492653
func_lines += [

‎sdc/tests/test_dataframe.py‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -638,21 +638,21 @@ def test_impl(df, key, value):
638638
msg = 'Could not set item for DataFrame with empty columns'
639639
self.assertIn(msg, str(raises.exception))
640640

641-
@dfRefactoringNotImplemented
641+
@dfRefactoringNotImplemented # required re-implementing DataFrame unboxing
642642
def test_df_add_column(self):
643643
all_data = [{'A': [0, 1, 2], 'C': [0., np.nan, np.inf]}, {}]
644644
key, value = 'B', np.array([1., -1., 0.])
645645

646646
self._test_df_set_column(all_data, key, value)
647647

648-
@dfRefactoringNotImplemented
648+
@dfRefactoringNotImplemented # required re-implementing DataFrame unboxing
649649
def test_df_add_column_str(self):
650650
all_data = [{'A': [0, 1, 2], 'C': [0., np.nan, np.inf]}, {}]
651651
key, value = 'B', pd.Series(test_global_input_data_unicode_kind4)
652652

653653
self._test_df_set_column(all_data, key, value)
654654

655-
@dfRefactoringNotImplemented
655+
@dfRefactoringNotImplemented # required re-implementing DataFrame unboxing
656656
def test_df_add_column_exception_invalid_length(self):
657657
df = pd.DataFrame({'A': [0, 1, 2], 'C': [3., 4., 5.]})
658658
key, value = 'B', np.array([1., np.nan, -1., 0.])
@@ -661,21 +661,21 @@ def test_df_add_column_exception_invalid_length(self):
661661
df = pd.DataFrame({'A': []})
662662
self._test_df_set_column_exception_empty_columns(df, key, value)
663663

664-
@dfRefactoringNotImplemented
664+
@dfRefactoringNotImplemented # required re-implementing DataFrame unboxing
665665
def test_df_replace_column(self):
666666
all_data = [{'A': [0, 1, 2], 'C': [0., np.nan, np.inf]}]
667667
key, value = 'A', np.array([1., -1., 0.])
668668

669669
self._test_df_set_column(all_data, key, value)
670670

671-
@dfRefactoringNotImplemented
671+
@dfRefactoringNotImplemented # required re-implementing DataFrame unboxing
672672
def test_df_replace_column_str(self):
673673
all_data = [{'A': [0, 1, 2], 'C': [0., np.nan, np.inf]}]
674674
key, value = 'A', pd.Series(test_global_input_data_unicode_kind4)
675675

676676
self._test_df_set_column(all_data, key, value)
677677

678-
@dfRefactoringNotImplemented
678+
@dfRefactoringNotImplemented # required re-implementing DataFrame unboxing
679679
def test_df_replace_column_exception_invalid_length(self):
680680
df = pd.DataFrame({'A': [0, 1, 2], 'C': [3., 4., 5.]})
681681
key, value = 'A', np.array([1., np.nan, -1., 0.])

0 commit comments

Comments
 (0)