yhat / pandasql

sqldf for pandas
MIT License
1.31k stars 184 forks source link

"Where" in query doesn't work in pandasql #61

Open mushtaque87 opened 7 years ago

mushtaque87 commented 7 years ago

Your code here

aadhaar_data = pd.read_csv('/Users/philips/Downloads/aadhaar_data.csv') aadhaardata.rename(columns = lambda x: x.replace(' ', '').lower(), inplace=True) #rename column query = "SELECT pin_code from aadhaar_data where state = 'Gujarat' " aadhar_queried_data = sqldf(query.lower(), locals()) print(aadhar_queried_data)

Problem description

When i user normal query it returns a dataframe , But when i put an condition in a query like Where it returns an empty array

Empty DataFrame Columns: [pin_code] Index: []

Data set # https://s3.amazonaws.com/content.udacity-data.com/courses/ud359/aadhaar_data.csv

jmweiner commented 6 years ago

You used query.lower(), which converts the non-punctuation characters in your query to lowercase. So you're not matching the literal 'Gujarat' but 'gujarat' instead. Removing .lower() fixes the query.