Pandas:过滤的数据帧不返回任何行,但未经过滤的数据帧

时间:2018-06-10 20:28:56

标签: python pandas

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

import pandas as pd

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

print(main_df.shape)的输出为(280, 23),因此此数据框中有280行。

但是,当我接下来尝试按列值过滤此数据框时:

filtered_df = main_df.query('Status == "Active"')
print(filtered_df.shape)

,输出od print(filtered_df.shape)(0,23),因此我没有获得任何行。

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

0    Active   
1    Draft    
2    Draft    
3    Draft    
4    Active   
5    Active   
Name: Status, dtype: object

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

正如评论中所讨论的,潜在的问题可能是打印数据时看不到的空白区域。您可以使用.str.strip()删除它们:

filtered_df = main_df.query('Status == "Active"')

然后

@OneToMany(fetch = FetchType.EAGER, mappedBy = "route")
private List<RouteXCabin> cabinas= new ArrayList<>();


@ManyToOne(fetch = FetchType.EAGER) 
@JoinColumn(name = "fk_id_route")
private Routes route;

应该产生所需的输出。