2016-10-23 11 views
0

私はCSVファイルを読み取り、value_countsのリストを提供する単純なコードを持っていますが、value_countsの結果から特定の行のみを抽出したいとします。どのようにこれを行うための任意の提案?value_coutnsを使用して特定の行のみを抽出します

value_count結果は次のようになります。私が行うことができるようにしたいと思い何

domain_a.com   79 
domain_b.de    51 
domain_c.de    44 
domain_d.com   43 
domain_e.com   38 

結果による検索で、特定のドメイン名と一致する行のみを返す:

希望

結果:

domain_a.com   79 
domain_c.de    44 
domain_e.com   38 

コードS Oはるか:

import pandas as pd 

# read csv into the data dataframe 
allData = r'/downloads/data/latest/export-2016-09-30-2039-55502fd6.csv' 
tickets_df = pd.read_csv((allData),parse_dates=['Created at'],index_col='Created at') 
tickets_df.fillna(0,inplace=True) 

# Use 2016 data ony 
tickets_2016_df = (tickets_df.loc['2016-01-01':'2016-10-20']) 

org_counts = tickets_2016_df['Requester domain'].value_counts() 
print (org_counts) 

答えて

1

あなたは、データフレームにあなたのシリーズを変換し.query()方法を使用することができます

In [120]: org_counts 
Out[120]: 
domain_a.com 79 
domain_b.de  51 
domain_c.de  44 
domain_d.com 43 
domain_e.com 38 
Name: val, dtype: int64 

In [121]: org_counts.to_frame('count').query("index in ['domain_a.com','domain_c.de','domain_e.com']") 
Out[121]: 
       count 
domain_a.com  79 
domain_c.de  44 
domain_e.com  38 

またはIndex.isin()方法とboolean indexing使用:

In [122]: domains = ['domain_a.com','domain_c.de','domain_e.com'] 

In [123]: org_counts[org_counts.index.isin(domains)] 
Out[123]: 
domain_a.com 79 
domain_c.de  44 
domain_e.com 38 
Name: val, dtype: int64 
+0

完璧に!ありがとうございました! – FunnyChef

+0

@FunnyChef、あなたは歓迎です:) – MaxU

関連する問題