我正在从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)
,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
我该如何解决这个问题?
发布于 2018-06-11 05:07:40
正如注释中所讨论的,一个潜在的问题可能是打印数据时看不到的空格。您可以使用.str.strip()
删除它们
df['Status'] = df['Status'].str.strip()
然后
filtered_df = main_df.query('Status == "Active"')
应产生所需的输出。
https://stackoverflow.com/questions/50787757
复制相似问题