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

python - Pandas groupby and apply function to numeric columns

I'm trying to apply the shapiro-wilk test to my dataframe, which is split into groups based on two categorical variables:

This results in an error saying that it couldn't convert string to float. The only non-numeric columns in there are the two categories which I'm using to split the dataframe.

How do I fix it?

EDIT:

example data:

I want to get the shapiro statistic and a p value for each of the numeric columns without having to write all possible combinations of each category.

0 投票
1 回答
39 浏览

python - apply() 方法:通过第二列的总和对第一列进行归一化

我无法理解函数的工作原理:

(摘自:“Python 数据科学手册”,Jake VanderPlas,第 167 页)

返回这个:

对我来说,了解其工作原理的最佳方法是手动计算值。

有人可以解释如何手动到达“data1”列的第二个值:0.142857

是1/7吗?但是这些值从何而来?

谢谢!

0 投票
1 回答
576 浏览

python - 在熊猫中逐行应用具有滚动窗口的自定义函数

我有一个函数,我想在数据帧中逐行应用并输出一个带有结果的新列。通常这对于一个lambda函数来说很简单,或者.map()但我被卡住了,因为该函数需要一个带有窗口的滚动最小值/最大值,而 lambda 显然只会看到该行。

这是功能:

这是我的数据的样子:

有任何想法吗?

0 投票
2 回答
3591 浏览

python - pandas df.apply 意外更改数据框

据我了解,pandas.DataFrame.apply 不会就地应用更改,我们应该使用它的返回对象来持久化任何更改。但是,我发现以下不一致的行为:

为了确保原始 df 保持不变,让我们应用一个虚拟函数:

这表现如预期。但是,如果我们修改初始化此 df 的方式, foo 将应用更改:

我还注意到,如果列 dtypes 不是“对象”类型,则上述内容不正确。为什么 apply() 在这两种情况下表现不同?

蟒蛇:3.6.5

熊猫:0.23.1

0 投票
1 回答
191 浏览

python - 当单元格包含列表时,熊猫适用

我有DataFrame一列包含列表作为单元格内容,如下所示:

我想对 的每个元素进行一些转换col_lists,例如:

使用此数据框,这可以按我的预期工作,但是,当我将相同的代码应用于其他数据框时,我得到了一个奇怪的结果——对于每一行,该列仅包含列表的第一个元素:

我有两个问题:

(1) 这里发生了什么?为什么我得到正确的结果df,但不是df2

(2) 如何正确地将一些转换应用于 a 中的列表DataFrame

0 投票
1 回答
30 浏览

python - 在二级索引中应用新行

我有一个看起来像这样的数据框:

本质上是垂直的两级索引。第一层是产品,第二层是收入或成本。

我想在收入和成本(简称收入 - 成本)下的所有产品中添加一个利润行。甚至是该产品的平均收入等。但是,经过大量的应用实验后,我似乎无法让它与多层次一起使用。

这怎么可能实现?

0 投票
1 回答
1034 浏览

pandas - 连接多行熊猫中多列的字符串?

我有两个日期框架如下:

现在我已经合并了两个框架,如下所示:

我想分组

但我希望输出看起来像这样:

我如何实现这一目标?我基本上需要弄清楚如何 .apply(','.join) 一起为多个列?

0 投票
1 回答
47 浏览

pandas - 将 np.random.rand 应用于组 - 优化问题

需要优化在计算期间将执行数万次的单行代码,因此时间成为一个问题。看似简单,实则卡住了。

该行是:

所以我想为每个组分配相同的随机数并“取消分组”。由于使用此实现多次调用 rand(),因此代码非常无效。

有人可以帮助向量化吗?

0 投票
3 回答
1730 浏览

python - 如何在没有 lambda 的行上使用 pandas 应用函数?

我不太了解该apply功能是如何工作的。这是我的代码,它工作正常:

但我想在不使用 lambda 函数的情况下做同样的事情。我试过这个:

和这个

但没有一个有效。

你能告诉我如何在不使用 lambda 函数的情况下使用我的函数吗?

一个精度:我想使用复杂的功能,所以

不会工作。

我知道解决方案

但我不喜欢它:如果不查看函数(apply ligne 中没有参数)就无法理解应用了什么+函数很丑:函数不是通用的并且与 row.a 和 row.b 相关联

结论:目前最好的解决方案似乎是

如果不对复杂函数使用 lambda 并使用良好的编码实践,似乎不可能做到这一点

0 投票
2 回答
751 浏览

python - 使用 Pandas 中的字典从两列创建新列

我想为分组列的每一组创建一个基于组和阈值的列,以便从另一列截断。

数据框如下:

所以我创建了一个基于“identif”列的每一组的字典:

所以我的目标是根据以下条件创建一个新列,比如“chk”:

如果“identif”列与字典“md”中的键匹配,并且该键的值大于“myvalue”列中的相应值,那么我将得到 1,否则为 0。

但是,我正在尝试找到一种使用 map/groupby/apply 创建新输出数据框的好方法。我现在正在使用如下函数做一个非常低效的方法(这在百万行的真实数据上花费了大量时间):

通过以下调用获取输出:

所以我的输出将是:

这可行,但效率极低,并且希望有更好的方法来做到这一点。