问题标签 [pandas-apply]

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 投票
3 回答
633 浏览

python - 通过将函数应用于另一个数据框的列来创建一个新的数据框

我尝试更多地了解python中的apply方法,并问自己如何使用apply编写以下代码:

我有一个数据框 df ,如下所示:

此外,我有一个类似以下的功能,它可以完成它的工作:

所以 f1 的输出是

这完全没问题。但我想知道是否有可能(我确信有)使用 apply 方法获得相同的结果。我试过了:

或类似的:

和其他 2,3 件事,但没有任何效果......我希望有人可以在这里帮助我?!

0 投票
0 回答
129 浏览

python - 用列表中的值替换熊猫数据框中的单元格值(矢量化)

我正在尝试执行以下操作:

对于满足“B”列条件的“A”列的每一行,我想用列表“end”的第一个元素替换“A”列中的值,然后删除第一个元素,以便下一行是列表中先前的“第二个”元素。

如果我用 for 循环来做,它看起来像这样,假设条件是前一行中 B 的值为 True (B 只包含布尔值):

由于我的 df 很大,我正在寻找矢量化版本,但显然我的方法不起作用,它总是只取列表的第一个元素:

data['A'][data['B'].shift(-1)== True] = data['A'].apply(lambda x: end.pop(0))

有任何想法吗?

0 投票
3 回答
4159 浏览

python - Pandas:自定义 WMAPE 函数聚合函数到多列而没有 for 循环?

目标:使用自定义 WMAPE(加权平均绝对百分比误差)函数对多个预测列和一个实际数据列进行分组,无需 for 循环。我知道输出数据帧的for循环和合并可以解决问题。我想有效地做到这一点。

有: WMAPE函数,在dataframe的一个预测列上成功使用WMAPE函数。一列实际数据,可变数量的预测列。

输入数据: Pandas DataFrame 具有多个分类列(City、Person、DT、HOUR)、一个实际数据列(Actual)和四个预测列(Forecast_1 ... Forecast_4)。请参阅 csv 链接: https ://www.dropbox.com/s/tidf9lj80a1dtd8/data_small_2.csv?dl=1

需要:在 groupby 期间对多个列应用 WMAPE 函数,并将预测列列表馈入 groupby 行。

所需的输出:具有分类组列和 WMAPE 的所有列的输出数据框。标记是首选但不需要(下面的输出图像)。

迄今为止成功的代码: 两个 WMAPE 函数:一个用于输入两个系列并输出一个浮点值 (wmape),另一个用于在 groupby (wmape_gr) 中使用结构化:

输出看起来像(前两行):

在此处输入图像描述

所需的输出将一次性包含所有预测(Forecast_2 ... Forecast_4 的虚拟数据)。我已经可以使用 for 循环来做到这一点。我只想在 groupby 内做。我想调用一个 wmape 函数四次。我将不胜感激任何帮助。

0 投票
2 回答
3580 浏览

python - 用于 Excel 电子表格的 Pandas groupby

我有一个如下所示的电子表格(大约 1800 行),它是从从 Access 数据库中提取信息的 python 脚本生成的:

我想使用可能的熊猫来更改此电子表格的布局。我想创建一个这样的表:

到目前为止,我已经使用 pandas 编写了以下内容,但不确定下一步该做什么:

我认为需要将以下陈述纳入其中,但我不确定如何:

0 投票
1 回答
70 浏览

pandas-apply - 应用返回数据框

我有一个具有 ID 索引的数据框,以及一个接受 ID 并返回有关该 ID 的一些数据(1 行)的函数。我想创建另一个与索引具有相同 ID 的数据框,但列是从我的函数中收集的列和值。我正在尝试使用 apply 但我不知道该怎么做。

例如,

这样做给了我一些看起来像:

所有数据显示为一列。如何使输出函数的列填充 new_df 的列?

0 投票
1 回答
280 浏览

python - Python pandas:我们可以避免在 groupby/apply 这种情况下应用吗?

我听说过很多关于 pandas 的应用很慢,应该尽可能少地使用。

我这里有一个情况:

我想在分组后做一些调整后的加权操作,如下所示:

这里有没有其他选择apply可以提高效率或至少是第二种做事方式!!

注意:我不是在谈论 dask 和其他并行化,只是纯粹的 pandas。

必需:在不使用 apply的情况下
计算列。Pct_Change_Adjusted

0 投票
2 回答
402 浏览

python - 有没有更有效的方法将映射应用于熊猫系列?

我的 pandas DataFrame 中有一个名为“State”的列。它包含美国各州的缩写。我有硬编码区域,我想为每个州创建一个包含区域的新列。

我使用了 pd.Series.apply(),但我想知道这种映射是否有更好的做法。关于如何改进我的代码的任何建议?

这是我当前有效的代码,但我只是对最佳实践的建议持开放态度。

0 投票
1 回答
47 浏览

pandas - 如何强制 Pandas 应用返回父数据框的所有列?

在对数据框的某些列使用 groupby 之后,然后使用 apply 来测试另一列中是否存在字符串,pandas 只返回那些分组的列以及使用 apply 创建的最后一列。是否可以返回与 groupby 关联的所有列并进行测试?例如,按会话线程的唯一标识符进行分组,并测试字符串是否存在于另一列中,然后包含数据框中存在但属于特定组的其他一些列?

我尝试使用 groupby,然后使用 apply 作为匿名函数。

我的目标是在最终数据框中包含该列Questionsender返回。预期输出如下所示:

0 投票
1 回答
1148 浏览

pandas - 使用一个数据框来格式化另一个数据框的样式

我有一个 pandas 数据框,我想根据另一个相同形状/大小的数据框的值来设置格式的样式。我正在尝试使用applymap。

这是一个例子:

理想情况下,在 t1 中,t2>0.5 中的相应单元格,则 t1 中的值以“红色粗体”显示。

但是,我不确定我应该使用什么模式来获得这种预期的效果。

0 投票
7 回答
344 浏览

python - 以其他列的名称作为值的 Pandas DataFrame 聚合列

我正在尝试在 myDataFrame中创建一个新列,该列是聚合列名的列表。这是一个示例DataFrame

我想创建一个新列,其中包含满足特定条件的列名列表。假设我对 value > 3 的列感兴趣——我想要一个如下所示的输出:

目前,我正在使用apply

这可以完成工作,但感觉很笨重,我想知道是否有更优雅的解决方案。

谢谢!