@@ -57,21 +57,6 @@ def _process_column(col, all_columns, selected_columns, excluded_columns):
57
57
else :
58
58
selected_columns .add (col )
59
59
60
- @pf .register_dataframe_method
61
- import pandas as pd
62
- import pandas_flavor as pf
63
- import re
64
-
65
- @pf .register_dataframe_method
66
- import pandas as pd
67
- import pandas_flavor as pf
68
- import re
69
-
70
- @pf .register_dataframe_method
71
- import pandas as pd
72
- import pandas_flavor as pf
73
- import re
74
-
75
60
@pf .register_dataframe_method
76
61
def where_ (df , condition ):
77
62
"""
@@ -88,21 +73,24 @@ def where_(df, condition):
88
73
df.where_('column > 5')
89
74
df.where_('column in Adelie, Gentoo, Chinstrap')
90
75
df.where_('column1 == value and column2 > 10')
91
- df.where_("sex == female and island == Torgersen ")
76
+ df.where_("sex == female and island == Dream ")
92
77
df.where_("(species in Adelie, Gentoo) & (body_mass_g > 3000)")
93
78
df.where_("species not in Adelie or island == Torgersen")
94
79
"""
95
80
def parse_value (value ):
81
+ # Check if the value is already a string literal
96
82
if value .startswith ("'" ) and value .endswith ("'" ):
97
83
return value
84
+ # Try to convert to float or int
98
85
try :
99
86
return float (value ) if '.' in value else int (value )
100
87
except ValueError :
88
+ # If conversion fails, treat as string and add quotes
101
89
return f"'{ value } '"
102
90
103
91
def parse_in_condition (column , values ):
104
92
parsed_values = [parse_value (v .strip ()) for v in values .split (',' )]
105
- return f"{ column } .isin([{ ', ' .join (parsed_values )} ])"
93
+ return f"{ column } .isin([{ ', ' .join (map ( str , parsed_values ) )} ])"
106
94
107
95
def parse_condition (cond ):
108
96
# Handle 'in' and 'not in' conditions
0 commit comments