Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用python编写嵌套查询?_Python_Python 2.7_Python 3.x_Pandas - Fatal编程技术网

如何用python编写嵌套查询?

如何用python编写嵌套查询?,python,python-2.7,python-3.x,pandas,Python,Python 2.7,Python 3.x,Pandas,大家好,我是新来的熊猫。我需要一些关于如何为所需输出编写查询的帮助 我想检索输出数据,如 当0

大家好,我是新来的熊猫。我需要一些关于如何为所需输出编写查询的帮助

我想检索输出数据,如 当0<最小年龄<10岁时,我只需要得到0到10岁的总和(人口) 当10岁<最小年龄<20岁时,我只需要得到10到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
将熊猫作为pd导入
将numpy作为np导入
df1=pd.read\u csv(“C:\Users\Rahul\Desktop\Desktop\u Folders\Code\Population\Population\u by\u zip\u 2010.csv”)
df2=df1.设置索引(“地理id”)
df2['sum_population']=np.其中(df2['minimum_age']<10,sum(df2['population']),0)
打印df2

您可以尝试与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等组,帮助创建最小年龄的垃圾箱。这就是它的样子

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来计算人口总数。

你试过什么吗?是的,我试过了,但没有得到检索到的输出发布你的代码无论你尝试了什么更重要的是,对于这些数据,一些预期的输出会很好。@Roshan我已经发布了我非常感谢你的快速回复和时间。非常感谢你。你能解释一下你的分组在查询行中会做什么吗?我已经添加了一些解释