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

python - 在 pandas 的列上应用 lambda

我有以下数据框

下面是我的代码

但是上面的代码给了我一个错误

如何解决这个问题?

实际代码

0 投票
2 回答
38 浏览

python - 如何记录引发 KeyError 的值

鉴于此 DataFrame df,:

和映射d

我想重命名玩家名称,同时我想跟踪映射中不存在的元素(保存到文件,或只是打印)。

我可以用这条线实现的第一部分:

结果是:

Almagro N.不是映射中的现有条目,因此无法重命名它。我想抓住这个名字。

我知道我可以继承UserDict对象并在那里实现这种行为,但我很好奇是否还有其他方法可以做到这一点?

0 投票
2 回答
3844 浏览

python - Pandas 应用并映射到每列的每个元素

如果值不为空,如何将自定义函数应用于每列的每个元素?

假设我有一个包含 10 列的数据框,如果 pd.notnull(x),我想将一个 lower() 函数应用于只有 4 列的每个元素,否则只保留 none 作为值。

我试过这样使用,

但由于我的列是混合数据类型(NaN 作为浮点数,其余为 unicode)。这给我一个错误-

如何摆脱这个错误?

0 投票
1 回答
1431 浏览

python - TypeError:Numpy.float64 对象不可调用迭代行熊猫数据框

目前正在使用 pandas 处理数据集。对这类东西没有太多经验,所以任何帮助将不胜感激。数据集(如下所示):

样本数据集

该表显示了与按年份分组的不同部分相关的评级。我正在尝试解析表格并从其相关年份列(不包括 nans)中提取最新评级,并将其Curr_Rate与评级在Curr_RatingYr.

第二个任务是提取第二个最近的评级(对应年份)并将这些值填充到Prev_RatePrevRatingYr字段中。最后,我需要从 2000-2017 年的所有可用评级中生成平均值。我的平均部分下降了,但是当我尝试解析表格以生成当前评级和先前评级的值时,我遇到了:

任何帮助将不胜感激。

0 投票
3 回答
1432 浏览

python - Pandas-合并两列(一列是列表,一列是字符串)

想要合并两列,一列是字符串,另一列是字符串列表,想要将字符串追加到另一列的列表中,例如:

尝试使用 apply 但没有如何处理不同类型的列

0 投票
1 回答
3029 浏览

python - pandas groupby apply 真的很慢

当我打电话时df.groupby([...]).apply(lambda x: ...),表现很糟糕。有没有更快/更直接的方法来做这个简单的查询?

为了证明我的观点,这里有一些设置 DataFrame 的代码:

现在这是我需要加快速度的非常慢的部分:

这会产生正确的结果,但正如您在上面看到的那样,需要很长时间(3.23ms 看起来并不多,但这只有 6 行......当我在真实数据集上使用它时,它需要很长时间)。

0 投票
2 回答
6254 浏览

python - pandas groupby 应用于多个列以生成新列

我喜欢使用 groupby-apply 在 pandas 数据框中生成一个新列。

例如,我有一个数据框:

并尝试通过 groupby-apply 生成一个新列“D”。

这有效:

因为(我认为)它返回一个与数据框具有相同索引的系列:

但是如果我尝试使用多个列生成一个新列,我不能将它直接分配给一个新列。所以这不起作用:

返回

事实上, groupby-apply 返回:

我可以

但这似乎很冗长,我不确定这是否会一直按预期工作。

所以我的问题是:(i)pandas groupby-apply 什么时候返回类似索引系列与多索引系列?(ii) 有没有更好的方法通过 groupby-apply 将新列分配给多个列?

0 投票
1 回答
683 浏览

python - 熊猫:如何应用每个子组的功能

我有一个包含国籍、职业和年龄列的简单数据框。国籍为欧盟、美洲、亚洲的热编码 0,1,2。

对于每个职业,我想找到每个国籍的百分比 例如:67% 的医生是欧洲人,33% 是亚洲人。

使用 groupby 我可以得到计数,但我想为每个职业组应用一个函数来确定百分比。不过,我一直无法弄清楚。

任何帮助将不胜感激。

0 投票
3 回答
935 浏览

python - Pandas Series.apply() 未按预期工作

我正在尝试应用一个函数来检查存储在一系列中的字符串是否是数字,如果是,则将它们变为无,如果不是则什么也不做。系列如下:

检查条目是否为表示为字符串的数字的函数:

我这样调用函数:

但我得到以下res结果:

期望的结果是:

我目前只是在一个带有小数据框(10000 行,70 列)的测试环境中玩这个,但如果我能让它工作,我希望将它应用到更大的数据框,所以也欢迎效率建议。提前致谢。

0 投票
1 回答
37 浏览

python - 我需要帮助从旧数据框构建新数据框,方法是对每一行应用方法,保持相同的索引和列

我有一个数据框(df_input),我试图通过将公式应用于每行中的每个元素,将其转换为另一个数据框(df_output)。该公式需要有关整行的信息(最小值、最大值、中值)。

df_input:

df_输出:

如上所述,在将 f(x) 应用于每行的每个单元格之后,我试图从 df_input 转到 df_output。函数 foo 试图通过将行的最小值、中值和最大值与某些坐标进行 OLS 回归来将元素 x 映射到 f(x)。每个时期都这样做。

我知道我遍历行,然后为每一行将函数应用于每个元素。我正在苦苦挣扎的地方是将 foo 的输出转换为 df_output。

我目前的想法是逐行建立新的df?我正在尝试这样做,但我得到了很多多索引列等。任何指针都会很棒。

非常感谢...祝大家圣诞快乐。