Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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 在多列上使用Sum()和Groupby_Python_Pandas_Numpy_Matplotlib - Fatal编程技术网

Python 在多列上使用Sum()和Groupby

Python 在多列上使用Sum()和Groupby,python,pandas,numpy,matplotlib,Python,Pandas,Numpy,Matplotlib,尽管代码可以工作,并为我带来所需的结果,但我相信有一种更简单的方法 dfg = df.groupby('County')['Total N, 1985 (Kg.)' , 'Total N, 2007 (Kg.)' ,'Total N, 2009 (Kg.)','Total N, 2010 (Kg.)','Total N, 2011 (Kg.)','Total N, 2012 (Kg.)','Total N, 2013 (Kg.)','Total N, 2014 (Kg.)','Total N

尽管代码可以工作,并为我带来所需的结果,但我相信有一种更简单的方法

dfg = df.groupby('County')['Total N, 1985 (Kg.)' , 'Total N, 2007 (Kg.)' ,'Total N, 2009 (Kg.)','Total 
N, 2010 (Kg.)','Total N, 2011 (Kg.)','Total N, 2012 (Kg.)','Total N, 2013 (Kg.)','Total N, 2014 
(Kg.)','Total N, 2015 (Kg.)','Total N, 2016 (Kg.)','Total N, 2017 (Kg.)','Total N target, 2025 
(Kg.)'].agg('sum') 
从“2011年总氮(千克)”到“2025年总氮目标(千克)”的列可以使用loc(可能)进行切片,但是,我在这里停留了几个小时


(数据集中的列号从6到12)

这可以通过分组和聚合后通过loc或其他方式限制数据来实现。样本数据取自plotly官方网站

import plotly.express as px
import pandas as pd
df = px.data.gapminder()
df['year'] = df['year'].apply(lambda x:str(x)+'y')
df = df.pivot(index=['continent','country'], columns='year', values='gdpPercap')
df.columns
Index(['1952y', '1957y', '1962y', '1967y', '1972y', '1977y', '1982y', '1987y',
       '1992y', '1997y', '2002y', '2007y'],
      dtype='object', name='year')

dfg = df.groupby('continent').sum().loc[:,slice('1997y','2007y')]
dfg
     year   1997y   2002y   2007y
continent           
Africa  123695.496865   135168.028262   160629.695446
Americas    222232.521564   232191.927683   275075.790634
Asia    324525.078743   335744.983087   411609.886714
Europe  572303.454048   651351.972673   751634.449078
Oceania     48048.350340    53877.556080    59620.376550

我相信这就是您所要寻找的。

请分享预期输出的样本数据,以及您的代码。嗨,我将向您打印列名:索引(['Land-River Segment'、'FIPS'、'County'、'支流流域'、'大流域'、'源区'、'Total N,1985(Kg.)、'Total N,2007(Kg.)、'Total N,2009(Kg.)“,”全氮,2010年(千克),”全氮,2011年(千克),”全氮,2012年(千克),”全氮,2013年(千克),“全氮,2014年(千克),”全氮,2015年(千克),”全氮,2016年(千克),“全氮,2017年(千克),”全氮目标,2025年(千克),”dtype='object')我要做的是求和()在基于县名列的每年列中,数据集在这里,如果您可以下载并检查它,请我可以这样列出它们,但它不可读,必须有一种更聪明的方法来做考虑编辑您的问题Tariq
df.iloc[:, 6:13].groupby('County').sum()