Support pandas' iloc indexer (#191)
This commit is contained in:
		
							parent
							
								
									77f656c80d
								
							
						
					
					
						commit
						ce1cd6d906
					
				|  | @ -685,6 +685,9 @@ def evaluate_subscript( | |||
|     if isinstance(value, pd.core.indexing._LocIndexer): | ||||
|         parent_object = value.obj | ||||
|         return parent_object.loc[index] | ||||
|     if isinstance(value, pd.core.indexing._iLocIndexer): | ||||
|         parent_object = value.obj | ||||
|         return parent_object.iloc[index] | ||||
|     if isinstance(value, (pd.DataFrame, pd.Series, np.ndarray)): | ||||
|         return value[index] | ||||
|     elif isinstance(value, pd.core.groupby.generic.DataFrameGroupBy): | ||||
|  |  | |||
|  | @ -808,6 +808,7 @@ filtered_df = df.loc[df['AtomicNumber'].isin([104])] | |||
|         ) | ||||
|         assert np.array_equal(result.values[0], [104, 1]) | ||||
| 
 | ||||
|         # Test groupby | ||||
|         code = """import pandas as pd | ||||
| data = pd.DataFrame.from_dict([ | ||||
|     {"Pclass": 1, "Survived": 1}, | ||||
|  | @ -821,6 +822,21 @@ survival_rate_by_class = data.groupby('Pclass')['Survived'].mean() | |||
|         ) | ||||
|         assert result.values[1] == 0.5 | ||||
| 
 | ||||
|         # Test loc and iloc | ||||
|         code = """import pandas as pd | ||||
| data = pd.DataFrame.from_dict([ | ||||
|     {"Pclass": 1, "Survived": 1}, | ||||
|     {"Pclass": 2, "Survived": 0}, | ||||
|     {"Pclass": 2, "Survived": 1} | ||||
| ]) | ||||
| survival_rate_biased = data.loc[data['Survived']==1]['Survived'].mean() | ||||
| survival_rate_biased = data.loc[data['Survived']==1]['Survived'].mean() | ||||
| survival_rate_sorted = data.sort_values(by='Survived', ascending=False).iloc[0]    | ||||
| """ | ||||
|         result, _ = evaluate_python_code( | ||||
|             code, {}, state={}, authorized_imports=["pandas"] | ||||
|         ) | ||||
| 
 | ||||
|     def test_starred(self): | ||||
|         code = """ | ||||
| from math import radians, sin, cos, sqrt, atan2 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue