首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pandas:过滤的dataframe不返回任何行,但未过滤的返回任何行

Pandas:过滤的dataframe不返回任何行,但未过滤的返回任何行
EN

Stack Overflow用户
提问于 2018-06-11 04:28:56
回答 1查看 942关注 0票数 2

我正在从CSV文件创建一个Pandas数据帧:

代码语言:javascript
复制
import pandas as pd

filename = 'mike.csv'
main_df = pd.read_csv(filename)

print(main_df.shape)的输出是(280, 23),所以这个数据帧中有280行。

但是,当我下一次尝试按列值过滤此数据帧时:

代码语言:javascript
复制
filtered_df = main_df.query('Status == "Active"')
print(filtered_df.shape)

print(filtered_df.shape)的输出是(0,23),所以我没有得到任何行。

根据下面的print(main_df.loc[:5, "Status"])输出,列名或值名没有错误

代码语言:javascript
复制
0    Active   
1    Draft    
2    Draft    
3    Draft    
4    Active   
5    Active   
Name: Status, dtype: object

我该如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-11 05:07:40

正如注释中所讨论的,一个潜在的问题可能是打印数据时看不到的空格。您可以使用.str.strip()删除它们

代码语言:javascript
复制
df['Status'] = df['Status'].str.strip()

然后

代码语言:javascript
复制
filtered_df = main_df.query('Status == "Active"')

应产生所需的输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50787757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档