2017-10-02 3 views
2

こんにちはすべて私はパンダには新しいです。私は私の必要な出力のためのパンダのクエリを書く方法に関するいくつかの助けが必要です。Pythonのpandasでネストされたクエリを書くには?

私は私がその10のための和(人口)を取得する必要がある唯一の とき10 < MINIMUM_AGE < 20 10にその0のための和(人口)を取得する必要があるときに0 < MINIMUM_AGE のような出力データを取得したいです20にのみ し、それは

私の入力データがどのように見える続け:

population,minimum_age,maximum_age,gender,zipcode,geo_id 
50,30,34,f,61747,8600000US61747 
5,85,NaN,m,64120,8600000US64120 
1389,10,34,m,95117,8600000US95117 
231,5,60,f,74074,8600000US74074 
306,22,24,f,58042,8600000US58042 

マイコード:

import pandas as pd 
import numpy as np 
df1 = pd.read_csv("C:\Users\Rahul\Desktop\Desktop_Folders\Code\Population\population_by_zip_2010.csv") 
df2=df1.set_index("geo_id") 
df2['sum_population'] = np.where(df2['minimum_age'] < 10,sum(df2['population']),0) 
print df2 
+0

何か試しましたか? – Roshan

+0

はい私はそれを試しましたが、私の検索された出力が得られません – Rahul

+0

あなたの試行したコードを投稿してください – Roshan

答えて

4

あなたはGROUPBYと一緒にカットパンダを試すことができ、

df.groupby(pd.cut(df['minimum_age'], bins=np.arange(0,100, 10), right=False)).population.sum().reset_index(name = 'sum of population') 

    minimum_age sum of population 
0 [0, 10)  231.0 
1 [10, 20) 1389.0 
2 [20, 30) 306.0 
3 [30, 40) 50.0 
4 [40, 50) NaN 
5 [50, 60) NaN 
6 [60, 70) NaN 
7 [70, 80) NaN 
8 [80, 90) 5.0 

説明:パンダカットがそうで0-10、10-20とのグループでそれらを置くことによってMINIMUM_AGEのビンを作成するのに役立ちます。これは見た目です

pd.cut(df['minimum_age'], bins=bins, right=False) 

0 [30, 40) 
1 [80, 90) 
2 [10, 20) 
3  [0, 10) 
4 [20, 30) 

ここでは、pd.cutの出力にgroupbyを使用して母集団の合計を求めます。

+0

私は本当に迅速な時間と時間に感謝しています。どうもありがとうございます。あなたは、単に私に説明することができますあなたのグループは、クエリラインは、pd.cut、ビンを持っているだろう – Rahul

+0

私はいくつかの説明を追加しました – Vaishali

関連する問題