2017-10-02 5 views
2

Hallo alles, ich bin neu in Pandas. Ich brauche etwas Hilfe, wie man Pandas für meine benötigte Ausgabe schreibt.Wie schreibe ich eine verschachtelte Abfrage mit in Python Pandas?

Ich möchte Ausgabedaten wie abrufen, wenn 0 < MINIMUM_AGE < 10i Summe brauchen, um (Bevölkerung) für die 0 bis 10 nur wenn 10 < MINIMUM_AGE < 20 Ich brauche für die 10 Summe (Bevölkerung) zu erhalten bis 20 nur und dann geht es weiter

Meine Eingangsdaten wie folgt aussieht:

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 

Mein Code:

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

haben Sie etwas versucht? – Roshan

+0

Ja, ich habe es versucht, aber es wird nicht meine abgerufene Ausgabe – Rahul

+0

Post Ihren Code, was auch immer Sie versuchten – Roshan

Antwort

4

Sie können Pandas versuchen mit groupby geschnitten entlang,

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 

Erläuterung: Pandas Schnitt hilft Bins MINIMUM_AGE erstellen, indem sie in Gruppen von 0-10, 10-20 und so weiter setzen. Dies ist, wie es aussieht

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

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

Jetzt Summe der Bevölkerung finden wir groupby am Ausgang des pd.cut verwenden.

+0

Ich schätze wirklich für Ihre schnelle Ans und Zeit. Ich danke dir sehr. Kannst du mir einfach erklären, was deine Gruppe mit der Query line tun wird, die pd.cut hat, bins – Rahul

+0

Ich habe eine Erklärung hinzugefügt – Vaishali

Verwandte Themen