问题标签 [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.
python - 是否有 Pandas 解决方案(例如:使用 numba 或 Cython)来使用索引、MultiIndexed DataFrame 进行“转换”/“应用”?
是否有 Pandas 解决方案——例如:使用 numba 或 Cython——到transform
/apply
使用索引?
我知道我可以使用iterrows
,itertuples
或. 但是我想要做的应该是微不足道的矢量化......我已经为我的实际用例(可运行代码)构建了一个简单的代理:
iteritems
items
实际输出
我想要的输出
可能相关:如何在 pandas 中查询 MultiIndex 索引列值
本质上,我正在寻找与JavaScript 相同的Array.prototype.map
行为(沿idx
.
python - 熊猫:如何进行分组和联合
我有以下格式的数据框:
列以外domain
的值只能为 0 或 1。我想一起执行 group by (在域上)和 union (在其余列上),以便输出显示中每列的值的联合团体。
在上面给出的示例数据中,我希望输出为:
我见过的 group by 示例在一个列上应用 group by,然后在其他列上应用聚合函数(sum、mean、max 等)。我无法弄清楚如何在其余列上应用联合。
python - Pandas 适用于 groupby-frames 和完整数据帧
给定一个 Pandas 数据框,我通过应用自定义函数的 groupby 表达式评估几个变量。工作正常(暂时忽略第二个 0-index-column),但我也想将该函数应用于完整的 DataFrame。
产量
但是 xxx.apply(myagg) 抛出:
AttributeError: ("'Series' 对象没有属性 'val'", '发生在索引 cls')
我可以创建一个常量虚拟变量并按它分组以接收我希望的结果 - 但肯定会有更简单的方法来做到这一点。如果 type(xxx) 返回 pandas.core.frame.DataFrame,为什么 pandas 会将没有 groupby 的帧视为一个系列?我在熊猫 0.23.4;蟒蛇 3.6。
python - 如何在 Pandas 中使用需要两个向量的函数 apply
我想传递向量列以应用于 pandas 数据帧,这是一个简化:
有或没有axis=1
. 我想避免走很长的路
这可能很容易,但我做了一些研究,不知道该怎么做。返回的值应该是 0.25
python - Python pandas groupby 返回所有条目而不是分组条目
我在 pandas 数据框中有一个时间序列的返回,其日期索引和返回列标记为“TRI”,如下所示:
我正在尝试使用 pandasgroupby
方法在不同的时间间隔内汇总累积回报。我创建了一个自定义方法:
但我无法在apply
通话中成功使用它。
作为参考,这组(按年份)按预期进行,尽管总和很简单:
输出:
但是应用我的cumRets
方法,我得到了所有行而不是汇总的年份总数。此调用在每个月的最后一天返回正确的值,但返回之前的每一行而不是仅按值指定的组:
输出:
所需的输出看起来像这样(删节):
问题 1a是我如何在每月和每周的间隔中做同样的事情,其中所需的输出分别如下所示(仅格式,值是占位符):
输出,每月:
输出,每周:
python - Pandas Split (group) + Apply + Rejoin (concat) 出现无法解释的行为,但仅在排序时
我正在尝试为 Pandas 数据框中的组计算列与其滞后(移位)之间的距离。需要对组进行排序,以使班次早于一个时间步。执行此操作的标准方法是.groupby()
(又名拆分),然后.apply()
在每个组上使用距离函数,然后使用.concat()
. 这很好用,但只有当我没有明确对分组数据框进行排序时。当我对分组数据框进行排序时,在重新加入步骤中出现错误。
这是我的示例代码,我能够重现意外行为:
当对分组数据帧进行排序的代码被注释掉时,代码会打印出来,这是预期的:
使用排序线,Traceback 看起来像这样:
排序但不运行 concat 会为 df_g 打印这个:
这表明它的分组方式与没有排序的 df_g 的打印(上图)不同,但尚不清楚在这种情况下 concat 是如何中断的。
更新:我以为我已经通过重命名有问题的列(在本例中为“X”)并.reset_index()
在合并之前使用分组数据框来解决它。
按预期运行,并打印:
但仔细观察,此列显示合并不正确:
我正在使用带有 Python 3.7.6 的 Mac OSX | conda-forge 打包| (默认,2020 年 1 月 7 日,22:05:27)
Pandas 0.24.2 + Numpy 1.17.3 并尝试升级到 Pandas 0.25.3 和 Numpy 1.17.5,结果相同。
python - 熊猫 groupby() 的 KeyError 应用()
在这里,我将时间添加到仅给出日期的数据中。值之间有 5 分钟或每个日期 288 个值。
该代码在输入数据帧为 1 天(288 行)或更短时有效,但在输入较长时会出错。知道我错过了什么吗?提前致谢。
相关代码部分:
输出(288 行或更少,按预期工作):
回溯(有 289 行或更多,我明白了):
编辑
感谢所有帮助。根据您的建议,此解决方案似乎对我有用,没有SettingWithCopyWarning
:
Python:3.7.4
熊猫:0.25.3
Jupyter Lab
pandas - 使用 Panda 的 Apply 计算值 - KeyError
我有一个看起来像这样的 Panda DataFrame:
我想添加一个名为“流行”的新列,即该行的病例数除以人口数。这行代码有效:
但是,我想使用 Panda 的 apply 来做同样的事情。这是我正在尝试做的事情:
我得到一个KeyError: 'prevalence'
任何想法我做错了什么?
python - pd.Series.apply 关键字参数是一个 pd.series
我在数据框中的系列上使用 apply 来使用具有多个关键字参数的函数。我在第一个输入(称为 sk)上使用 apply 函数,然后在我的数据框的其他列中使用其他参数。我的应用线如下所示:
我收到错误消息(该函数正在查询 Oracle SQL 数据库):
但是,如果我使用:
它没有问题,但是使用 pd.series 引用的目的是它可以向下移动每一行并返回函数输出。报告系列和 rssd 因行而异。我真的不能分享更多的代码,所以我很抱歉没有分享很多。
我正在尝试做的事情可能吗?
python - GroupBy 应用 Python Pandas 的更快方法?
如何使 Groupby Apply 运行得更快,或者如何以不同的方式编写它?
输出:
我的程序现在运行很慢。我可以让它更快吗?我过去在使用 groupby() 之前进行了过滤,但在这种情况下我没有看到一种简单的方法。