如何使用Pandas groupby和Aggregate生成新列?

Xiphias

我有一个运行的DataFrame:

df.groupby(by="mycol").agg({"colA": "sum", "colB": "count"})

但是,colAcolB需要存在。从聚合中创建新列的最“泛泛”的方法是什么?

编辑:

基本上,我有一组列,并且聚合不是1:1映射。因此,考虑一个示例,在该示例中,我希望将两列值的比率汇总为新列。现在考虑一下此类映射的字典。

我知道,在示例中,我可以过滤play并计算分组数据的均值。但这不是问题的重点,因此请忽略此简单的解决方案,这只是简单示例的副作用。

>> df
    outlook   play  temperature
0     sunny   True           25
1     sunny   True           25
2  overcast   True           19
3      rain  False           21
4  overcast  False           33
5      rain  False           27
6      rain  False           22
7  overcast   True           26
8     sunny   True           13
9     sunny   True           16

# should become:
>> df.groupby(by="outlook").agg(?)
         play_mean_temp
sunny    19.75
overcast 22.50
rain     NaN
耶斯列尔

在您的示例中,您可以使用:

print (df.groupby(by="outlook").apply(lambda x: x.ix[x.play, 'temperature'].mean()))
outlook
overcast    22.50
rain          NaN
sunny       19.75

如果首先使用布尔索引,则将省略某些行:

print (df[df.play].groupby(by="outlook")['temperature'].mean())
outlook
overcast    22.50
sunny       19.75
Name: temperature, dtype: float64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

pandas groupby应用于多个列以生成新列

如何使用 .loc 用 groupby pandas 标记新列

在两列上使用pandas groupby如何派生新列

如何使用groupby和筛选数据框架创建新列

如何使用Pandas Groupby和nlargest

如何使用 pandas groupby、grouper 和 ngroup?

新列中的Pandas groupby和agg值

Python Pandas 数据框交叉引用和新列生成

如何在Pandas groupby对象中过滤1个值并使用它来计算新列?

如何在 Pandas 中过滤某些列值并使用这些值生成新列?

Python Pandas:使用Aggregate vs Apply定义新列

具有 value_counts 的 Pandas groupby 并在新数据框中生成列

使用groupby / aggregate返回多列

如何使用双循环为 r 中的行和列生成新列

使用Pandas GroupBy和size()/ count()生成聚合的DataFrame

如何在 Pandas 列中对唯一名称使用 groupby 和 cumcount

如何在pandas groupby中添加新列?

如何使用其他列和字符串格式在 Pandas 数据框中生成列

使用tidyverse,如何动态生成新列?

Pandas Groupby并使用自定义值创建新列

使用組中的第一個值和條件創建新列(pandas、python、groupby)

如何使用groupby在pandas中以相反的顺序对列求和

Python 和 Pandas:如何使用 df.loc 根据条件创建新列?

Pandas DataFrame GroupBy 和基于分组数据子集的新计算列

Pandas Pivot或Groupby用于动态生成的列

调用groupby和从pandas转换时如何保留列顺序?

如何使用 Pandas 中的指定列创建新数据框?

Pandas Groupby汇总到新列

基于 groupby 后条件的 Pandas 新列