问题标签 [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 回答
56 浏览

python - 如何计算按一个属性分组的值,但在熊猫的第二列中提供

我有一个带有订单 ID、Id Client、Date_order 和一些指标的数据框(不是很重要)我想获取所有行的 Client 的最后一个 ID 订单的数量

我试过这个:

在此处输入图像描述

它考虑了所有的 ID,只显示了三行 Client 和 max ID,但我只需要在前面的行中查看所有行 DataFrame。请帮忙)

0 投票
1 回答
159 浏览

python - Apply on Dataframe 将第一行值传递给所有行

当以以下方式使用 apply 时,作为“行”传递的值仅是来自数据帧第一行的值。

奇怪的是,在 document.save() 中创建的文件名是正确的。newname在 row['case_name'] 中有正确的值。但是,如果我print(row)打印第一行的值。

我希望print(row)打印数据框中每一行的值,而不仅仅是第一行。

为清楚起见编辑:

该脚本是一个生成 .docx 单词文件的邮件合并。 mapfields是正则表达式格式的字典:列名。document是一个 docx-python 对象。

0 投票
1 回答
502 浏览

python - 聚类数据子组中的行

df在 3-d 空间中有一个对象组件的数据集 - 每个都ID代表一个具有各种组件的对象:

我想遍历每个ID,使用聚类技术根据每个组件的 ( , , ) 坐标sklearn创建组件 ( ) 集群- 以实现如下效果:Compxyz

举个例子 - ID: A,Comp :1 is incluster 1, whereasID :A, Comp:4 在cluster3中。 (我计划然后连接IDcluster稍后)。

我在以下方面没有运气groupby + apply

for我可以通过使用循环来暴力破解它,ID但我的数据集很大(~ 150k ID),我担心资源和时间限制。任何帮助都会很棒!

0 投票
2 回答
212 浏览

python-3.x - Pandas Apply Function Ver Slow - 通过列表查找使用值计数

我有一个如下所示的 pandas DF,我正在尝试将不同行中的值计数转换为以下格式:

我在这里找到了这个答案(在 DataFrame 的每一行中计算 Series 中项目的出现次数

这可以满足我的需要,但在我的数据集(400 万行)上非常慢。我试图用 400,000 行来完成它,但它仍然没有以可接受的速度运行。

我相信它是通过大量数据集进行查找的列表,并且 apply 本质上是一个 for 循环。是巨大的循环减慢了这个过程。这里的潜在解决方案基本上提到不要使用 Apply,这会使这里的执行变得乏味,因为我的列表中有 C1、C2...C100 和 10 个垂直列来验证计数。关于我可以在这里尝试什么来提高性能的任何提示?

这是下面的代码:

0 投票
1 回答
34 浏览

pandas - 如何在 Pandas groupby 对象上应用 stack() 函数

我正在尝试在应用 stack() 功能时优化我的运行时。

下面的这个 groupby.apply() 有效。

但是,它需要更大的数据集(300 万条记录 = 25 分钟)

如何优化此性能?

我可以使用 transform() 吗?如何 ?它没有 stack() 调用

感谢您在处理此类情况时的所有见解

0 投票
1 回答
97 浏览

pandas - Pandas:为什么应用函数不起作用?

我正在学习 Pandas,我偶然发现了一个练习,该练习希望我在酒精消费者数据集中创建一个新列(称为合法饮酒者)并用值 True / False 填充它:如果消费者年龄超过 17 岁,则为 True,False如果不。

我无法弄清楚为什么一个版本的代码有效,而另一个版本会引发错误。请问你能帮帮我吗?:)

0 投票
1 回答
51 浏览

python - 如何根据与前一行的差异对行进行分组?

我有以下数据框:

当“i-1”行的 time_finish 在“i”行的 time_start 之前最多 900 秒时,我想将行分组到相同的 id 下。
基本上,上面示例的输出将是: 结果将是:

我通过以下代码实现了它,但我确信有一种更优雅(和有效)的方式来做到这一点:

0 投票
1 回答
117 浏览

python - Groupby 在具有重叠组的列上

继续我之前的问题

这将产生一个 81 列并填充随机数的 dafatrame:

具有这 81 个列名称的数据框:

使用我上一个问题的解决方案,我知道如何创建一个分组函数,例如,获取所有“A.*.E”列(中间有任何数字),将它们求和并生成一个名为“A.*.E”的命名输出列。总和。然后对 'A.*.F'、'A.*.G' 等执行相同的操作:

我的问题是一个函数是否也可以以产生重叠组的方式编写?例如,是否可以制作一个为 ('A.1.E' + 'A.2.E') 生成 SUM1 和为 ('A.1.E' + 'A.3.E' 生成 SUM2 的分组器? ),因此“A.1.E”列将出现在两个总和中。

0 投票
3 回答
2545 浏览

python - python pandas groupby/apply:传递给apply函数的究竟是什么?

Python新手在这里。我试图了解 pandas groupby 和 apply 方法的工作原理。我找到了这个简单的例子,我把它贴在下面:

数据框df如下所示:

到现在为止还挺好。然后我想转换我的数据,以便从每组团队中我只保留点列中的第一个元素。首先检查df['Points'][0]确实给了我的第一个Points元素df,我尝试了这个:

认为函数的参数xlambda另一个熊猫数据框。但是,python 会产生错误:

这似乎与 HashTable 有关,但我无法理解为什么。然后我想也许传递给的lambda不是数据框,所以我运行了这个:

输出:

其中,IIUC 表明 的论点lambda确实是一个熊猫数据框,其中包含每个团队的df.

我知道我可以通过运行得到想要的结果:

我只是想从 apply 函数中了解为什么df['Points'][0]有效而x['Points'][0]不是无效。感谢您的阅读!

0 投票
0 回答
31 浏览

regex - 迭代python中的字符串替换函数

我需要在 python 的数据框中替换部分文本。但是,替换字符串应该从一个大的多词字符串列表中选择。我已经编写了以下简单示例来演示问题以及我使用 for 循环的解决方案。它运行良好,但如果单词列表和数据框很大,则 for 循环运行起来会变得非常昂贵。我想知道是否有任何方法可以避免这里的 for 循环。