2016-11-17 97 views
0

从文件output_hc_v1.csv 与头:EMPLID pay_status计数位置DEPTID grade_desc最新版本如何使用.query与熊猫和numpy?

我会通过Python想节省过滤的“pay_status =活动”新的CSV。 与此代码:

a1=a.query ('"pay_status" == ["Active"]') 

====================================== ===

但这部分不起作用。

My full code: 
import csv 
import pandas as pd 
import numpy as np 

df= pd.read_csv ("C:/Users/e1087353/Documents/CAPCO/HC/python_data/output_hc_v1.csv") 
df.head() 
a= pd.pivot_table(df, index =["location","deptid","grade_desc","pay_status"] ,values=["Count"],aggfunc=np.sum) 
a1=a.query ('"pay_status" == ["Active"]') 
a1.to_csv ("C:/Users/e1087353/Documents/CAPCO/HC/python_data/Output_final2.csv") 

回答

0

请勿使用查询。要过滤简单地做:

a1=a[a['pay_status']=='Active'] 

如果您创建数据透视表可能要重新索引您筛选之前: a=a.reset_index()

另外,对于更复杂的查询,如果您要筛选的项目列表使用isin

filter_list=['Active','Inactive','Something'] 
a1=a[a['pay_status'].isin(filter_list)] 
1

您不需要在查询字符串中引用列名称。因此您可以使用,

a1 = a.query('pay_status == "Active"')