问题标签 [pandas-loc]

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 回答
256 浏览

python - 使用总和条件分组

我有以下df,我想按日期和参考对它进行分组,但有总和条件。

在这方面,我需要按日期和参考分组,并且仅当 P >= 而不是 PP 时才对“Q”列求和。

有没有办法做到这一点?提前谢谢了

0 投票
1 回答
448 浏览

python - 使用 sumproduct 分组

我正在使用具有以下结构的 df:

当价格高于 Mkt 价格(并按日期和参考显示)时,我已设法从 MarketQuantity 中获得代表我的数量的加权百分比

但是,当我尝试仅按日期对其进行分组时,我得到:

这是先前输出的总和,它应该是 0.14 (30+40)/(100+400)。

我怎么能用 groupby 做到这一点?

0 投票
1 回答
38 浏览

python - df.loc 中的按位条件未给出预期结果

我写了以下代码:

但是“abc”会写入 col_C 的所有值,而不是条件中指定的值。这是为什么 ?

编辑:

我的列是对象/字符串,所以我尝试使用以下函数转换它们:

但它会引发以下错误:

0 投票
2 回答
38 浏览

python - 为熊猫数据框的重复(或多个)目标元素分配新值

我有一个熊猫数据框:

我想为特定列分配一个新值,并为该列中具有特定值的每个元素分配一个新值。

假设我想将新值分配给8888具有 value 的元素9999。我尝试了以下方法:

但它返回以下错误:

A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead

所以我尝试使用loc

返回相同的错误。

我会很感激一些帮助和一些关于错误的解释,因为我真的无法理解它。

0 投票
1 回答
64 浏览

pandas - 'float' 对象不可下标/无法将浮点数放入数据框中

我拆分了一个字符串。我想要做的是从字符串中提取值并将其更改为浮点数,然后将其放入 DataFrame 中。但是我将值放入 DataFrame 时出错。

0 投票
2 回答
98 浏览

python - 熊猫有条件申请

我有不同状态的客户重复,因为每个客户订阅/产品都有一行。我想new_status为客户生成一个“取消”,每个订阅状态都必须一起“取消”。

我用了:

分隔索引中的每个重复项以指示重复值

因此,我想使用 .apply 和/或 .loc 来生成:

0 投票
1 回答
61 浏览

python - 通过不同列的重复值之间的条件

当一个客户有多个订阅时,它就会被复制。我想为整个客户状态生成一个 new_status,而不是为每个订阅生成一个新状态:一个重新激活订阅的客户和一个取消一个订阅但仍然有另一个活动订阅的客户。

东风:

这些情况的条件是:如果取消重复的“canceled_at”日期>活动的“created”日期:如果取消重复的“canceled_at”日期<活动:new_status 将是“重新激活”

期望的输出:

0 投票
2 回答
36 浏览

python - 列中重复值之间的条件

当每个客户有多个计划时,他们就会被复制。我想为客户设置状态:

如果他们填充了“cancelled_at”的所有产品,则客户状态被取消,但是当不是每个产品都填充了“cancelled_at”时,状态为“降级”,因为他丢失了一个产品。

我已经有取消状态,现在我只需要降级

0 投票
1 回答
24 浏览

python - 如何根据条件将列中的值设置为另一列

我有以下df:

我想将“总计”的值转移到“金额”中已经有一个值的“金额”列,当然还有“总计”。

我过滤了:

但无法将值从总计(5000)转移到金额。

期望的输出:

0 投票
2 回答
2159 浏览

python - 使用 .loc 用另一列的值更新 pandas 列

如果 ColX != 0 的值,我需要有条件地更新下面的 ColY。与其他示例的不同之处在于,我需要将 ColY 替换为 ColX 中的值,而不是字符串

当我使用以下代码时,我可以使用 .loc 替换为字符串:

df1.loc[df1.ColX != 0, 'ColY'] = 'Example'

如何用 ColX 中的值替换相关的 ColY 值?我尝试过以下方法无济于事

df1.loc[df1.ColX != 0, 'ColY'] = df1.ColX

我的原始数据框 df1 是:

我想要的输出是: