草庐IT

GroupBy1

全部标签

python - pyspark: groupby 然后获取每个组的最大值

我想按一个值分组,然后使用PySpark找到每个组中的最大值。我有以下代码,但现在我对如何提取最大值有点困惑。#somefilecontainstuples('user','item','occurrences')data_file=sc.textData('file:///some_file.txt')#CreatethetripletsoIindexstuffdata_file=data_file.map(lambdal:l.split()).map(lambdal:(l[0],l[1],float(l[2])))#Groupbytheuseri.e.r[0]grouped=dat

python - itertools.groupby() 有什么用?

在阅读python文档时,我遇到了itertools.groupby()功能。这不是很简单,所以我决定在stackoverflow上查找一些信息。我从HowdoIusePython'sitertools.groupby()?找到了一些东西.这里和文档中似乎没有关于它的信息,所以我决定发表我的观察以征求意见。谢谢 最佳答案 首先,您可以阅读文档here.我会把我认为最重要的点放在第一位。我希望在示例之后原因会变得清楚。始终使用相同的键对项目进行排序以用于分组以避免意外结果itertools.groupby(iterable,key=N

python - Pandas 在 groupby 函数中计算空值

df=pd.DataFrame({'A':['foo','bar','foo','bar','foo','bar','foo','foo'],'B':['one','one','two','three','two','two','one','three'],'C':[np.nan,'bla2',np.nan,'bla3',np.nan,np.nan,np.nan,np.nan]})输出:ABC0foooneNaN1baronebla22footwoNaN3barthreebla34footwoNaN5bartwoNaN6foooneNaN7foothreeNaN我想使用groupby来

python Pandas : mean and sum groupby on different columns at the same time

我有一个pandas数据框,如下所示:NameMissedCreditGradeA1310A1112B2310B1220我想要的输出是:NameSum1Sum2AverageA2411B3515基本上是获取列Credit和Missed的总和,并在Grade上取平均值。我现在正在做的是Name上的两个groupby,然后求和和平均值,最后合并两个输出数据帧,这似乎不是最好的方法。我还在SO上发现了这一点,如果我只想在一列上工作,这很有意义:df.groupby('Name')['Credit'].agg(['sum','average'])但不确定如何为两列做一行?

python - 如何使用子图创建 Pandas groupby 图

我有一个这样的数据框:valueidentifier2007-01-010.781611552007-01-010.766152562007-01-010.766152572007-02-010.705615552007-02-010.032134562007-02-010.032134572008-01-010.026512552008-01-010.993124562008-01-010.993124572008-02-010.226420552008-02-010.033860562008-02-010.03386057所以我对每个标识符进行分组:df.groupby('iden

python - 如何使用 python itertools.groupby() 按第一个字符对字符串列表进行分组?

我有一个类似于此列表的字符串列表:tags=('apples','apricots','oranges','pears','peaches')我应该如何使用itertools.groupby()按每个字符串中的第一个字符对该列表进行分组?我应该如何提供itertools.groupby()所需的“关键”参数? 最佳答案 你可能想在之后创建dict:fromitertoolsimportgroupbyd={k:list(v)fork,vingroupby(sorted(tags),key=lambdax:x[0])}

python - 如何在 groupby 2 列之后保留 DataFrame 的原始索引?

在执行groupby后,有什么方法可以保留大型数据框的原始索引吗?我需要这样做的原因是因为我需要做一个内部合并回到我原来的df(在我的groupby之后)以重新获得那些丢失的列。索引值是执行合并的唯一“唯一”列。有谁知道我怎样才能做到这一点?我的DataFrame非常大。我的groupby看起来像这样:df.groupby(['col1','col2']).agg({'col3':'count'}).reset_index()这会从我想要保留的原始数据框中删除我的原始索引。 最佳答案 您可以通过reset_index将您的索引提升到

python - 使用 groupby 的结果过滤 pandas 数据框

我有一个大数据框(4000万行),如果值满足groupby对象中的条件,我想根据一列过滤掉行。例如,这里是一些随机数据。“字母”列实际上有数千个唯一值:xyzletter0478630e158928b2965942a379645e4778037d5669135d6963152d756826e8789614a9226013e1075829d1155429c12833140e1337702c14536766a15763378d16646781b1723941d1810131e1952113d在'letter'列上应用groupby,并为每个字母获取x列的总和:df.groupby('let

python - 将函数应用于 pandas dataframe groupby 中的第二列

在pandas数据框中,可以使用函数对其索引进行分组。我希望定义一个应用于列的函数。我希望按两列分组,但我需要按任意函数foo对第二列进行分组:group_sum=df.groupby(['name',foo])['tickets'].sum()如何定义foo以将第二列分为两组,例如,根据值是否为>0来划分?或者,是否使用了完全不同的方法或语法? 最佳答案 Groupby可以接受标签和系列/数组的任意组合(只要数组的长度与数据框的长度相同),因此您可以将函数映射到您的列并将其传递到groupby,例如df.groupby(['nam

python - Pandas 用 groupby 划分两列

这显然很简单,但作为一个pandas新手,我被卡住了。我有一个包含3列的CSV文件,即州、bene_1_count和bene_2_count。我想计算给定状态下“bene_1_count”和“bene_2_count”的比率。df=pd.DataFrame({'state':['CA','WA','CO','AZ']*3,'bene_1_count':[np.random.randint(10000,99999)for_inrange(12)],'bene_2_count':[np.random.randint(10000,99999)for_inrange(12)]})我正在尝试以下