【python-来自groupby的Pandas累积差异】教程文章相关的互联网学习教程文章

python – groupby是否自动分组pandas中的所有非数字列?【代码】

我有一个下面的数据集示例(仅显示前几行,但有193行):country,beer_servings,spirit_servings,wine_servings,total_litres_of_pure_alcohol,continent Afghanistan,0,0,0,0.0,Asia Albania,89,132,54,4.9,Europe Algeria,25,0,14,0.7,Africa Andorra,245,138,312,12.4,Europe Angola,217,57,45,5.9,Africa Antigua & Barbuda,102,128,45,4.9,North America ...当我运行这个:drinks.groupby(‘continent’).head() 我找回了30行的数...

python – Pandas – Groupby一个多索引级别,获得可能的组合,然后转换数据【代码】

我一直在努力解决分组,组合和转换的问题.我目前的解决方案是:df = df.groupby(level='lvl_2').transform(lambda x: x[0]/x[1])但这并没有解决我问题的某些部分. 假设代码如下:import pandas as pd import numpy as np import datetime today = datetime.date.today() today_1 = datetime.date.today() - datetime.timedelta(1) today_2 = datetime.date.today() - datetime.timedelta(2) ticker_date = [('first', 'a',today), (...

python – Pandas Aggregate groupby【代码】

我有一个概念上看起来如下的数据框:df = pd.DataFrame({"a": [1, 1, 1, 2, 2,3],"b": ["a", "a", "c", "a", "d","a"],"c": ["2", "3", "4", "2", "3","2"] })a b c0 1 'a' '2' 1 1 'a' '3'2 1 'c' '4'3 2 'a' '2'4 2 'd' '3'5 3 'a' '2'对于a中的每个组,我需要计算到此处的唯一(b,c)值. 所以在这个例子中,ouptut应该是[3,4,4]. (因为在组1中有3个唯一的(b,c)对,并且在组1和组2中共有4个唯一的...

python – 如何将groupby值的总和除以另一个值的count【代码】

我想通过’label’和’month’分组来计算每个月和每个标签的销售数量.我正在尝试’groupby和apply’方法来实现这一目标,但不确定如何计算每个标签的月份.比方说,对于标签值AFFLELOU(DOS),我有7个月的两个值.所以,我应该将销售数量相加并除以2.在第9个月和第10个月,我只有一个值,所以计数为1,它将除去销售数量. 我编写了下面的代码,但它不会将count作为函数并且返回计数未定义错误.t1.groupby(['label', 'month']).apply(lambda x: ...

python – Pandas stack / groupby创建一个新的数据帧【代码】

我有创建和重新排列数据集的问题.我看着熊猫群体的功能,并认为它可以帮助我做到这一点,但我没有经验可以实现它.我在下面创建了一个问题示例:我的df:vehicle color a b c d A1 A2 A3 B1 B2 B3 C1 C2 C3 D1 D2 D3 resp 1 bike green 5 4 1 3 3 4 5 3 5 3 NaN NaN NaN NaN NaN NaN 2 walk red 5 3...

python – Pandas groupby找到真和假的百分比【代码】

我有一列网站:[‘加拿大’,’美国’,’中国’….] 每个站点在SITE列中多次出现,并且每个实例旁边都是true或false值.INDEX | VALUE | SITE0 | True | Canada 1 | False | Canada 2 | True | USA 3 | True | USA它继续下去. 目标1:我想为每个站点找到VALUE列的百分比为True. 目标2:我想返回一个网站列表,其中VALUE列中的%True大于10%. 我如何使用groupby来实现这一目标?我只知道如何使用groupby找到每个网站...

python – Groupby返回完整行的最大值【代码】

如何获取groupby relsult的完整数据行?dfa b c d e 0 a 25 12 1 20 1 a 15 1 1 1 2 b 12 1 1 1 3 n 25 2 3 3In [4]: df = pd.read_clipboard()In [5]: df.groupby('a')['b'].max() Out[5]: a a 25 b 12 n 25 Name: b, dtype: int64如何获得完整的行?a b c d e a 25 12 1 20 b 12 1 1 1 n 25 2 3 3我尝试过滤但df [df.e == df.groupby(‘a’)[‘b’].max()]但...

python – Pandas groupby并制作一组项目【代码】

我正在使用pandas groupby并希望应用该功能从组中的项目创建一个集合. 以下不起作用:df = df.groupby('col1')['col2'].agg({'size': len, 'set': set})但以下工作:def to_set(x):return set(x)df = df.groupby('col1')['col2'].agg({'size': len, 'set': to_set})在我的理解中,这两个表达式是相似的,第一个不起作用的原因是什么?解决方法:这是因为set是类型类型而to_set是类型函数:type(set) <class 'type'>def to_set(x):retu...

python – 根据groupby()条件删除pandas数据帧行【代码】

输入中有一个pandas数据帧:store_id item_id items_sold date 1 1 0 2015-12-28 1 2 1 2015-12-28 1 1 0 2015-12-28 2 2 0 2015-12-28 2 1 1 2015-12-29 2 2 1 2015-12-29 2 1 0 2015-12-29 3 1 0 2015-12-...

python – Pandas:选择groupby.sum()满足条件的行【代码】

在pandas中我有一个表格的数据框:>>> import pandas as pd >>> df = pd.DataFrame({'ID':[51,51,51,24,24,24,31], 'x':[0,1,0,0,1,1,0]}) >>> dfID x 51 0 51 1 51 0 24 0 24 1 24 1 31 0对于每个’ID’,’x’的值被记录多次,它是0或1.我想从df中选择那些包含’ID’的行,其中’x’至少为1的两倍. 对于每个’ID’,我设法计算’x’为1的次数>>> df.groupby('ID')['x'].sum()ID 51 1 24 2 31 0但我不知道...

python – 将sum()或mean()分配给函数内的df.groupby【代码】

我怀疑这是Python中的一个非常基本的功能,我已经查看了可能已经有答案的问题下的建议,但我不认为这是一个重复的问题.我会删除它,如果是的话. 挑战: 我想在函数中包装df.groupby(pd.TimeGrouper(freq =’M’)).sum(),以便我可以将sum(),mean()或count()指定为该函数中的参数.我在here之前问了一个类似的问题,但我认为在这种特殊情况下我不能使用相同的技术. 这是一个可重复输入的片段:# Imports import pandas as pd import numpy...

python – Pandas groupby分位数值【代码】

我试图从数据帧计算特定的分位数值,如下面的代码所示.在单独的行中计算它没有问题. 当试图运行最后2行时,我收到错误“AttributeError:’SeriesGroupBy’对象没有属性’分位数(0.25)’”.我怎样才能解决这个问题?import pandas as pd raw_data = {'x': [0, 1, 0, 1, 0, 1, 0, 1],'y': [7, 6, 5, 4, 3, 2, 1, 0],'number': [25000, 35000, 45000, 50000, 60000, 70000, 65000, 36000]} df = pd.DataFrame(raw_data) f = {'number':...

python – 使用pandas groupby获取与最小值对应的行【代码】

我有一个表需要按条件分组:R_num ORG name level 13 Dm Ad 17 13 Dm Af 16当我使用它给我13 Dm Ad 16,这就像被操纵的数据.df1=df.reset_index().groupby(['R_num','ORG']).agg({'name':'first','level':['min']})我想要的结果是13 Dm Af 16,我知道’name’可能有问题:’first’但我该怎么办呢? 谢谢解决方法:IIUC,你应该使用groupby和idxmin:# df.loc[df.groupby(['R_num','ORG'])['level'].agg('idxmin')] df.l...

python – Pandas groupby和Multiindex【代码】

在Pandas中有没有机会通过MultiIndex对数据进行分组?通过这个我的意思是传递给groupby函数不仅键,而是键和值预定义数据帧列?a = np.array(['foo', 'foo', 'foo', 'bar', 'bar', 'foo', 'foo'], dtype=object) b = np.array(['one', 'one', 'two', 'one', 'two', 'two', 'two'], dtype=object) c = np.array(['dull', 'shiny', 'dull', 'dull', 'dull', 'shiny', 'shiny'], dtype=object) df = pd.DataFrame([a, b, c]).T df.colu...

Python Pandas:Groupby日期,并按时间戳访问每个组【代码】

我想分组时间戳(日期)并通过时间戳访问每个组,时间戳看起来不正常.看起来组键被奇怪地索引为不同的格式.df= pd.DataFrame({'DATE' : ['10-Oct-2013', '10-Oct-2013', '10-Oct-2013', '11-Oct-2013', '11-Oct-2013', '11-Oct-2013'],'VAL' : [1,2,3,4,5,6]})>>> dfDATE VAL 0 10-Oct-2013 1 1 10-Oct-2013 2 2 10-Oct-2013 3 3 11-Oct-2013 4 4 11-Oct-2013 5 5 11-Oct-2013 6dfg=df.groupby(df['DATE'].a...