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

python - 有没有一种优雅的方式使用 loc 来减少带有任意“OR”语句的数据帧?

假设有一个巨大的数据框记录动物园里的动物数量

[动物] ... [数字]

[牛] ... [3]

[鱼] ... [6]

.

.

.

[猪] ... [5]

我想减少这个以查看 n 个特定的动物

然后我会做这样的事情

为尽可能多的动物

但是对于任何给定的集合,我该如何做到这一点

某种形式的东西

但这会使联合(即它会寻找动物 = 牛和猪以及所有其他东西的地方)

是否有一个版本会寻找交叉点(即动物=牛或猪或其他任何东西)

0 投票
1 回答
1620 浏览

python - 如何让 df.loc 从数据帧的特定单元格返回值(数字)?

我正在处理有关大学篮球队获得 2 分和 3 分的频率的数据。我计划将它们取 3 的频率乘以 3,并将其添加到取 2 乘以 2 的频率上。一个函数将执行此操作。该函数稍后将被放入一个更大的函数中,但这不应该引起任何限制(我不认为)。

以下是 pandas 数据集的前 10 行:

如果重要的话,我会从 csv 文件中加载数据:

这是我的函数的样子:

Team 参数将是引号中的团队名称。作为记录,在较大的函数中,此参数将从字符串列表中提取,并且需要为团队和以下时间找到此值....但我应该能够使用 [i]和 [i + 1] 和索引。所以,再次,应该没问题....

当我运行此功能时,例如:

我得到的是:

我将使用 2.577 作为我乘以的数字,然后在 if 语句中使用该结果来确定模拟游戏的获胜者。所以返回的方式是行不通的。

我感到困惑的是为什么它会给我所有这些信息。我不想要 0(这是行号),也不想要 dtype。在这种情况下,我只希望函数返回 2.577。

0 投票
1 回答
716 浏览

python - 如何使用 .loc 和 .contains 设置列值

.loc 和 .contains 函数都返回一个数据框对象。pandas 文档指出,要为列中的每一行重新分配一个值,我应该使用 .loc,但是当与 .contains 结合使用时,我会收到以下警告:

试图在 DataFrame 中的切片副本上设置一个值。尝试改用 .loc[row_indexer,col_indexer] = value 查看文档中的注意事项:http: //pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

但是,该过程有效,并且我为数据框列中的每一行重新分配了所需的值。我怎样才能避免这个警告?

0 投票
1 回答
78 浏览

python - 如何在熊猫数据框的部分使用 std 函数?

我试图在使用 std 函数时将数组切片以仅使用它的一部分。那部分是 1:t,因为 t 是一个整数,它随着 for 循环的每次迭代而增长。Y 是我的熊猫数据集,列是“TempK”,它被指定为列参数。由于数据集很大,您可以切片的数量是否有限制,或者是其他什么?

我收到的错误是这样的:

回溯(最后一次调用):文件“C:\Users\Kabla\Anaconda3\envs\condaEnv\Lib\site-packages\pandas\core\indexes\base.py”,第 2657 行,在 get_loc 中返回 self._engine。 get_loc(key) KeyError: 1

0 投票
1 回答
75 浏览

python - 如何选择 NaN 行并将 value_A 分配给新列?代码 df.loc['condition_1' & 'condition_2' & 'df.column_a == ''] = 'value_a'

我有类似如下的数据:

我需要的是:

我不知道如何处理rows[2, 3],这里我列出了我使用但不起作用的代码:

0 投票
1 回答
27 浏览

python - 如果我的行值在其他行的同一列(column1)中,如何找到其他列(column2)的行值

我有这样的DataFrame:

我想要新的列(old_bill),在同一列(CPT)中早期出现列(CPT)的行值之后,我需要列(月)值。预期的数据框是:

我尝试过 .isin 方法。但我没有得到可展示的结果。

0 投票
1 回答
119 浏览

python - pandas 中的 loc 是使用矢量化逻辑还是 for 循环?

我使用 loc 函数访问 pandas 中的行,如下所示:

这是矢量化的吗?它比使用 numpy 更好吗

0 投票
1 回答
1084 浏览

python - 如何在 loc 中使用具有多种可能格式的变量来切片带有 DatetimeIndex 的 pandas 数据帧

我需要定义一个函数,该函数将对包含 DatetimeIndex 的数据帧执行多项操作。其中一项操作是根据作为函数参数之一传递的时间段或日期对数据帧进行切片。

在代码中使用 loc 时,切片对象接受不同的选项。例如:

将所有行与 2004 年的日期切片

对日期在 2004 年 1 月到 2005 年 2 月之间的所有行进行切片

我希望能够只使用函数的一个参数来构造进入 loc[] 的切片对象。就像是:

其中 period 是作为参数之一传递给函数的变量,并且可以以不同的格式定义以由函数正确解释。

我试过了:

  • 将字符串变量传递给 loc,例如构造为 "\'2004\'"+':'+"\'2005\'" 的值,但它返回 KeyError "'2002':'2010'"。

  • 使用 pd.to_datetime 将字符串转换为日期时间对象。但这会导致“2004”转换为 Timestamp('2004-01-01 00:00:00')

我发现这个答案这个答案很相似,但并不特定于我的需要。

我可以在函数中使用两个参数来解决这个问题(比如 start_date、end_date),但我想知道是否有任何方法可以只用一个来实现它。

0 投票
1 回答
49 浏览

python - 遍历行和应用转换的有效方法

我正在寻找一种更有效的方法来执行检查,然后在必要时应用转换。

这是我当前的代码

要遍历 350K 记录,这在我的机器上大约需要 2 个小时。我确信必须有一种更有效的方法。

0 投票
1 回答
41 浏览

python - DataFrame:查找指定行并将数值赋给同一行的另一列

当条件表达式 c1 = 2017-04-01 成立时,我们想用数字 300.0 替换 c3。

结果,用 300.0 代替 r3 和 c3。但是,条件表达式不是 r3 列:c1 = 2017-04-01 是要组织的 r3,所以它变成了行。

我该怎么办?