为何Pandas中正确的SQL查询返回空DataFrame?
解决pandasql查询导演信息返回空DataFrame的问题
可能的原因及解决办法:
名字存在隐藏空格或字符差异:数据表中存储的导演名可能前后有空格,或者和你写的
'Стивен Спилберг'有细微字符差异(比如全角/半角空格、Unicode变体字)。先跑下面的代码查看实际存储的导演名:print(bf['director'].unique())对比输出结果和查询用的字符串,确保二者完全一致。
先清理导演列的冗余字符:把director列的前后空格去掉后再执行查询:
# 清理列数据 bf['director'] = bf['director'].str.strip() # 重新执行查询 query = """ SELECT movie, rating_ball, director FROM bf WHERE director = 'Стивен Спилберг' """ movies = pysqldf(query) print(movies)用模糊匹配替代精确匹配:如果不确定名字的精确写法,使用
LIKE进行模糊匹配:query = """ SELECT movie, rating_ball, director FROM bf WHERE director LIKE '%Спилберг%' """ movies = pysqldf(query) print(movies)检查字符编码一致性:俄文字符可能存在编码问题,尝试用原始字符串写法(在字符串前加
r)执行查询:query = r""" SELECT movie, rating_ball, director FROM bf WHERE director = 'Стивен Спилберг' """ movies = pysqldf(query) print(movies)
内容的提问来源于stack exchange,提问作者Amaliya
相关产品推荐
相关产品推荐

