问题标签 [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 投票
2 回答
3101 浏览

python - pandas resample 应用 np.average

我有时间序列“半小时”数据。我需要在重新采样期间demand使用加权平均值(使用price)重新采样到“1 天”。

dft

我想重新采样demand1D(1天),使用price列作为权重,使用np.average()

我看过一些例子,但有些东西不是很点击。我得到的最接近的是:

但问题是这给出了:

axis=0未指定时,错误为:

问题可能在于如何weights指定。权重的长度必须为 48,但我怀疑 lambda 函数使用的是price. 谢谢!

0 投票
1 回答
578 浏览

python - pandas,申请后保留 groupby 组

我想groupby在我的数据框上使用,然后在每个组上使用apply.

作为第一个原型,我设置了一个示例,将数据帧的条目从字符串转换为数字。数据框如下所示:

生成的数据框是:

数据框的结构

此数据框中的数字是字符串。因此,在我可以使用任何数学运算之前,必须将它们转换为数字类型。这就是我想做的应用:

但结果是包含所有项目的单个系列:

我已经为此阅读了文档。显然你可以使用transformor apply。在样本中,似乎保留了分组结构。

也许它与某些东西有关pd.to_numeric?所以我尝试了:

这会导致 TypeError:

TypeError:无法将系列转换为

显然,应用程序将整个组作为参数。每组的结果似乎都连接到一个数据帧中。

是否可以以保持分组结构的方式使用 apply ?我想要一个调用,将函数应用于组内的每一列并保留组。然后我可以链接电话。

我发现的一个相关问题是: pandas: sample groups after groupby

但答案建议在分组之前应用该功能。这不适用于链接功能。而对于像mean().

0 投票
0 回答
421 浏览

python - 熊猫中的时间相关等级自相关

我有一个这种示意图形式的 MultiIndex pandas DataFrame(尽管我正在使用的真实数据框有数百万行):

按产品和时间分组,我希望跨场景的“价格”排名自相关,示意性定义如下(按产品):

(时间 t 的秩自相关)= 秩相关(时间 t 的“价格”,时间 t+1 的“价格”)

其中 ('Price' at time t) 是一个包含与场景一样多的条目的向量(每个产品都有一个这样的向量)。例如,对于时间 t=2 的产品“Alpha”,所需数量为

给出 0.5。对于最后一个时间步(在这种情况下为 t=3),它应该简单地返回 NaN(因为没有 t+1 的数据)。总而言之,所需的结果数据框应该是:

我想从类似的东西开始

df.groupby(['Product','Time']).agg(自相关函数)

但是聚合操作需要来自两个不同组的数据(即不同时间的组),到目前为止我还没有找到一种方法来做到这一点。有任何想法吗?

0 投票
1 回答
341 浏览

python - Grouped-By DataFrame:在函数的当前行和上一行中使用列值

我有一个具有这种结构的数据框:

这是它的外观:

现在,我想按id. 然后,我想使用coords. 这些应该在函数中用于计算两个坐标之间的距离:

这是我尝试过的:

vincenty(x,y)期望x像 (10, 20) 一样,y并且返回一个浮点数。

显然,这是行不通的。该函数接收两个 Series 对象而不是两个列表。所以可能使用x.values.tolist()应该是下一步。但是,我对事物的理解到此为止。因此,我将不胜感激有关如何解决此问题的任何想法!

0 投票
1 回答
686 浏览

pandas - 如何调试熊猫 groupby 应用功能

我试图理解我的前同事编写的函数。

我无法完全理解上面的函数,所以我试图分组并实际查看date_str = str(group['CallerLocal_Date'].iloc[-1]) + ' {0}:00:00'行的作用。

df看起来像这样

所以我定义

并打电话

然后我得到了

有人可以指出如何在不使用apply函数的情况下调试 groupby 对象吗?

0 投票
3 回答
452 浏览

python - 应用函数以创建具有多列作为参数的字符串

我有一个这样的数据框:

我想用一个句子创建一个新列,如下所示:

它会是这样的:

但是,显然这种合成器不起作用。

有人对此有什么建议吗?

0 投票
1 回答
792 浏览

python-3.x - 使用 apply 减少多索引 pandas 数据框的维数

我有以下数据框:

它看起来像这样:在此处输入图像描述

我希望将它从多索引减少到普通索引。我希望通过应用一个使用 t1 和 t2 值的函数并只返回一个值来做到这一点,这将导致有两列:psl 和 psv。

我已经成功地将它分组并应用了一个函数:

这与我想要的非常接近,只是我不想应用 np.mean,而是应用自定义函数。特别是百分比变化函数。

我的最终目标是能够做这样的事情:

返回此错误:

我也试过这个:

反过来又返回:

您能否尽最大努力对答案的每个部分进行详尽的解释,以便我更好地了解 pandas 的工作原理。

0 投票
3 回答
6387 浏览

python-3.x - 应用 Python lambda:如果条件给出语法错误

这是我的数据集

使用以下方法时出现语法错误。请帮帮我。我希望“sex”表中的值根据“Rings”表进行更改。如果“Rings”值小于 10,则相应的“sex”值应更改为“K”。否则,不应更改“性”表。

文件“”,第 1 行 fake_abalone2["sex"]=fake_abalone2["Rings"].apply(lambda x:"K" if x<10)

SyntaxError:无效的语法

0 投票
1 回答
4159 浏览

python - Dataframe 上的 Panadas 条件返回 TypeError:在“str”和“int”的实例之间不支持“>”

我正在使用 pandas 处理 DataFrame,我需要根据某些条件添加一个新列。

我的数据框是:

在向 DataFrame添加一个名为Class的新列时,我需要应用一些条件。

条件如下: IF discount > 20 & total > 100 & tax == 0then Class应为1 否则应为0

这是我尝试过的方法:

但它返回一个错误:

TypeError: ("'>' not supported between 'str' and 'int'", 'occured at index 18')

我该如何解决这个问题?

请帮帮我!

提前致谢!

0 投票
3 回答
49 浏览

python - 通过在字符串值中查找子字符串来更改列值

我正在尝试使用 pandas apply() 更改单个列中的值。我的功能部分工作,但我坚持如何修复另一半。

数据栏:

County Name Riverside County San Diego County SanFrancisco County/city

我正试图摆脱“县”,所以我只剩下县名。我使用该功能成功摆脱了“县”,但在从旧金山删除“县/市”时遇到了麻烦。

代码:

输出:

函数中的条件有问题吗?