问题标签 [pandas-groupby]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1563 浏览

python - 从 pandas DataFrame 返回最后一个有效(非空)值

假设我dataframe看起来像:

我可以按“b”创建一个组。有没有一种快速的方法来获取每个组的“a”中的最后一个非 NA 值?在这种情况下,A 组为 3,B 组为 -9。

(在这种情况下,序列“a”按给定排序,但可能并非如此。可能还有另一列“c”,根据它定义“最后一个”。)

我通过查看 grouped.groups 字典编写了自己的循环代码。但显然,鉴于我庞大的数据集,这非常低效。我认为这可以非常简单地完成——也许我对熊猫太陌生了:-)

0 投票
10 回答
855120 浏览

python - 将 Pandas GroupBy 输出从 Series 转换为 DataFrame

我从这样的输入数据开始

打印时显示如下:

分组很简单:

和打印产生一个GroupBy对象:

但我最终想要的是另一个包含 GroupBy 对象中所有行的 DataFrame 对象。换句话说,我想得到以下结果:

我不太明白如何在 pandas 文档中完成此操作。欢迎任何提示。

0 投票
3 回答
155930 浏览

python - 使用 pandas GroupBy.agg() 对同一列进行多个聚合

是否有 pandas 内置方法可以将两个不同的聚合函数f1, f2应用于同一列df["returns"],而无需agg()多次调用?

示例数据框:

语法错误但直觉上正确的方法是:

显然,Python 不允许重复键。有没有其他方式来表达输入agg()?也许元组列表[(column, function)]会更好,以允许将多个函数应用于同一列?但agg()似乎它只接受字典。

除了定义一个仅应用其中两个函数的辅助函数之外,还有其他解决方法吗?(无论如何,这将如何与聚合一起工作?)

0 投票
3 回答
38479 浏览

python - 合并 DataFrame 中的重复列

如果我有一个包含相同名称的列的数据框,有没有办法将具有相同名称的列与某种函数(即总和)结合起来?

例如:

我如何通过对列名相同的每一行求和来折叠 NY-WEB01 列(有一堆重复的列,而不仅仅是 NY-WEB01)?

0 投票
3 回答
154 浏览

python - 我有一长串需要排序的元组,例如。[('12/2010', 196.9876),('12/2010', 654.9876), ('11/2010', 234.9876)......]

我有一长串需要排序的元组,例如。[('11/2010', 196.9876),('11/2010', 654.9876), ('12/2010', 234.9876).........]

我想使用 date(1st element) 将元组中的第二个元素分组到单独的列表中。到目前为止,我已经得到了一个唯一日期列表,例如[11/2010,12/2010....],我试图使用这些来引用更大的列表并进行数学计算,我想出了:

这可能是真正的垃圾代码,但我是编码新手,尝试这样做非常沮丧,感谢提供的任何帮助。

PS我正在使用Python

0 投票
5 回答
104793 浏览

python - Python - GroupBy 对象的滚动函数

我有一个grouped类型的时间序列对象<pandas.core.groupby.SeriesGroupBy object at 0x03F1A9F0>grouped.sum()给出了预期的结果,但我无法让 rolling_sum 使用该groupby对象。有没有办法将滚动功能应用于groupby对象?例如:

但是,我想要类似的东西:

0 投票
5 回答
265997 浏览

python - 如何按键访问pandas groupby数据框

如何通过键访问 groupby 对象中相应的 groupby 数据框?

使用以下分组:

我可以遍历它以获取键和组:

我希望能够通过其密钥访问组:

但是当我尝试这样做时,gb[('foo',)]我得到了这个奇怪pandas.core.groupby.DataFrameGroupBy的对象,它似乎没有任何与我想要的 DataFrame 对应的方法。

我能想到的最好的是:

但这有点讨厌,考虑到大熊猫通常在这些事情上有多好。
这样做的内置方法是什么?

0 投票
4 回答
19482 浏览

python - Replacing values with groupby means

I have a DataFrame with a column that has some bad data with various negative values. I would like to replace values < 0 with the mean of the group that they are in.

For missing values as NAs, I would do:

But how to do this operation on a condition like x < 0?

Thanks!

0 投票
1 回答
1722 浏览

python - pandas 将时间序列转换为多列 DataFrame

我有一个时间序列的日内数据如下所示

我希望将数据转换为 DataFrame,列作为每个日期,行作为日期中的时间。

这些我都试过了

但是如何将组转换为日期列 DataFrame?还是有更好的方法?

0 投票
10 回答
179150 浏览

python - GroupBy pandas DataFrame 并选择最常见的值

我有一个包含三个字符串列的数据框。我知道第三列中唯一的一个值对于前两个的每个组合都是有效的。要清理数据,我必须按前两列按数据框分组,并为每个组合选择第三列的最常见值。

我的代码:

最后一行代码不起作用,它显示“Key error 'Short name'”,如果我尝试仅按 City 分组,则会收到 AssertionError。我能做些什么来解决它?