【python-如何获取由“ groupby()”生成的组作为列表?】教程文章相关的互联网学习教程文章

python – 如何为groupby DataFrame创建滚动百分比【代码】

我试图计算每种产品按月变化的百分比.这是我到目前为止所拥有的.我有一个涉及单个产品的DataFrame.我很难理解如何将计算应用于包含许多产品和许多月的结果集. 示例数据帧:product_desc activity_month prod_count product_a 1/1/2014 53 product_b 1/1/2014 42 product_c 1/1/2014 38 product_a 2/1/2014 26 product_b 2/1/2014 48 product_c ...

python – 在groupby之后访问pandas中的分层列【代码】

我使用pandas来分组数据集.当我使用不同的函数聚合不同的列时,我得到了一个分层的列结构.G1 = df.groupby('date').agg({'col1': [sum, np.mean], 'col2': 'sum', 'col3': np.mean})结果是:col1 col2 col3sum mean sum mean date 2000-11-01 1701 1.384052 82336 54.222945 2000-11-02 11101 1.447894 761963 70.027260 2000-11-03 11285 1.479418 823355 77.984268不幸的...

python – 使用pandas groupby功能查找可盈利投资的百分比【代码】

我有像这样的pandas DataFrame;它显示了股票投资的历史.在Profit列中,1表示有利可图,0表示亏损.Stock Year Profit CountAAPL 2012 0 23AAPL 2012 1 19AAPL 2013 0 20AAPL 2013 1 10 GOOG 2012 0 26 GOOG 2012 1 20 GOOG 2013 0 23 GOOG 2013 1 11我必须找出有利可图的投资百分比:Stock Year Profit CountPercentAAPL 2012 1 ...

python – groupby.first()和groupby.head(1)之间有什么区别?【代码】

两者都返回每组第一行的DataFrame.在阅读API参考时,它首先说“计算第一组值”,但是当并排查看两个输出时,我看不到主要区别. 我错过了什么吗?df = pd.DataFrame({'id' : [1,1,1,2,2,3,3,3,3,4,4,5,6,6,6,7,7],'value' : ["first","second","second","first","second","first","third","fourth","fifth","second","fifth","first","first","second","third","fourth","fifth"]})First API解决方法:主要区别在于first()将跳转到第一...

python – pandas> = 0.18 – 更改为重新采样,如何使用groupby进行上采样【代码】

我正在使用一段类似于下面所示的伪代码块的代码,以根据时间序列数据集中缺失天数(即该特定属性ID没有数据的天数)的属性ID插入NaN值. 使用pandas 0.18.0更改重采样方法已经打破了这段代码,我无法弄清楚如何实现相同的行为. 码:data = [['2010-01-01', 'A', 2], ['2010-01-02', 'A', 3], ['2010-01-05', 'A', 8], ['2010-01-10', 'A', 7], ['2010-01-13', 'A', 3], ['2010-01-01', 'B', 5], ['2010-01-03', 'B', 2], ['2010-01-04',...

Python Pandas中的Groupby / Sum – 零计数没有显示……有时候【代码】

的背景 我有一个模拟人口数据集.它们具有以下属性 >年龄(0-120岁)>性别(男,女)>种族(白人,黑人,西班牙裔,亚洲人,其他) df.head()Age Race Gender in_population 0 32 0 0 1 1 53 0 0 1 2 49 0 1 1 3 12 0 0 1 4 28 0 0 1还有另一个变量将个体标识为“In_Population”*,它是一个布尔变量.我在pa...

python – pandas groupby并在多列上应用函数【代码】

如果我有一个函数f,我不止一次应用于一组列,那么更多的Pythonic方法是什么.现在,我正在做的是这个.newdf=df.groupby(['a', 'b']).apply(lambda x: f(x, 1)) newdf.columns=['1'] newdf['2']=df.groupby(['a', 'b']).apply(lambda x: f(x, 2)) newdf['3']=df.groupby(['a', 'b']).apply(lambda x: f(x, 3)) newdf['4']=df.groupby(['a', 'b']).apply(lambda x: f(x, 4))有更好的方法吗? 谢谢,解决方法:这对我来说足够pythonic:col...

在Python 2.7中的zip和groupby好奇心【代码】

有人可以解释为什么这些在Python 2.7.4中输出不同的东西吗?它们在python 3.3.1中输出相同的内容.我只是想知道这是否是2.7中修复为3的错误,或者是否是由于语言的某些变化.>>> for (i,j),k in zip(groupby([1,1,2,2,3,3]), [4,5,6]): ... print list(j) ... [] [] [3] >>> for i,j in groupby([1,1,2,2,3,3]): ... print list(j) ... [1, 1] [2, 2] [3, 3]解决方法:这不是一个错误.它与groupby iterable消耗时有关.使用py...

python – Pandas groupby数据并进行计算【代码】

我有一个如下所示的数据帧,我根据列B的值重新排序了数据帧. a = df.sort([‘B’,’A’],升序= [真,假])#This is my df A,B a,2 b,3 c,4 d,5 d,6 d,7 d,9然后,当列A相同时,我想计算B列中每个元素之间的差异.但是,如果列A仅包含单个数据点,则结果将为零. 所以我首先使用groupby()来做到这一点. b = a [‘B’].groupby(df [‘A’])) 然后我卡在这里,我知道我可以使用lambda x:abs(x [i] – x [i 1])或甚至apply()函数来完成计算...

python – Pandas groupby列表中的值【代码】

我试图从熊猫df返回一个groupby.我希望将输出值相加而不合并.但以下内容合并了相应的列表.import pandas as pdd = ({'Id' : [1,2,2,1], 'Val' : ['A','B','B','A'], 'Output' : [[1,2,3,4,5],[5,3,3,2,1],[6,7,8,9,1],[6,7,8,9,1]], })df = pd.DataFrame(data = d)df = df.groupby(['Id','Val']).agg({'Output':'sum'}, axis = 1)日期:Output Id Val ...

python – Pandas Groupby独特的多列【代码】

我有一个数据帧.import pandas as pd df = pd.DataFrame( {'number': [0,0,0,1,1,2,2,2,2], 'id1': [100,100,100,300,400,700,700,800,700], 'id2': [100,100,200,500,600,700,800,900,1000]})id1 id2 number 0 100 100 0 1 100 100 0 2 100 200 0 3 300 500 1 4 400 600 1 5 700 700 2 6 700 800 2 7 800 900 2 8 700 1000 2(这代...

python – Pandas将groupby sum值分配给原始表中的最后一行【代码】

例如,我有一张桌子 一个id price sum 1 2 0 1 6 0 1 4 0 2 2 0 2 10 0 2 1 0 2 5 0 3 1 0 3 5 0我想要的是(最后一行总和应该是一组价格的总和)id price sum 1 2 0 1 6 0 1 4 12 2 2 0 2 10 0 2 1 0 2 5 18 3 1 0 3 5 6我能做的就是找出总和A['price'].groupby(A['id']).transform('sum')但是我不...

python – 为每个索引应用pandas groupby【代码】

我有一个数据框,其中一个人的名字作为索引(可以有多个条目)和两列“X”和“Y”.列’X’和’Y’可以是A-C之间的任何字母. 例如:df = pd.DataFrame({'X' : ['A', 'B', 'A', 'C'], 'Y' : ['B', 'A', 'A', 'C']},index = ['Bob','Bob','John','Mike'])对于每个人(即索引),我想得到列’X’和’Y’的每个唯一组合的出现次数(例如 – 对于Bob我有1个计数(‘A’,’B’)和1计数(‘B’,’A’)). 当我执行以下操作时:df.loc['Bob'].groupby(...

python – pandas数据帧中的Groupby【代码】

请考虑以下数据集:a b 0 23 0 21 1 25 1 20 1 19 2 44 2 11如何在b列中找到大于20的值的百分比,并且根据列a位于同一个簇中.我的代码给了我每组的相同价值.NN20 = [x for x in b if (x > 20)] percent_20 = lambda x: float(len(NN20)) / float(len(b)) pnn20=data.groupby('a').apply(percent_20) 解决方法:IIUC:In [179]: df.groupby('a')['b'].apply(lambda x: x.gt(...

Python Groupby语句【代码】

我想尝试将以下详细信息列表分组:details = [('20130325','B'), ('20130320','A'), ('20130325','B'), ('20130320','A')]>>for k,v in itertools.groupby(details,key=operator.itemgetter(0)): >> print k,list(v)这是上面groupby语句的输出:20130325 [('20130325', 'B')]20130320 [('20130320', 'A')]20130325 [('20130325', 'B')]20130320 [('20130320', 'A')]但我的预期输出是:20130325 [('20130325', 'B'),('20130325', '...