如何获得一组 Python Pandas .loc 行来引用原始数据帧,而不是依次运行?

Posted

技术标签:

【中文标题】如何获得一组 Python Pandas .loc 行来引用原始数据帧,而不是依次运行?【英文标题】:How do I get a block of Python Pandas .loc lines to reference the original dataframe rather than running in order on top of one another? 【发布时间】:2021-03-01 02:14:53 【问题描述】:

在下面的示例中(df name 'statement',column name 'product'),我希望将产品 1 更改为产品 2。我在第一行实现了这一点,但随后第二行将其从产品 2 更改到产品 18。之后,它从产品 18 变为产品 13。如何并行执行下面给出的所有 loc 操作。而不是一个接一个地执行。

例子:

statement.loc[statement['product'] == 1, 'product'] = 2
statement.loc[statement['product'] == 2, 'product'] = 18
statement.loc[statement['product'] == 18, 'product'] = 13

【问题讨论】:

【参考方案1】:

我会使用 replace 而不是 loc 过滤来做到这一点

mappings = 1:2, 2:18, 18:13
statement['product'] = statement['product'].replace(mappings)

【讨论】:

以上是关于如何获得一组 Python Pandas .loc 行来引用原始数据帧,而不是依次运行?的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何将 def 中的参数传递给 pandas loc 中的输入?

python:pandas之DataFrame取行列(df.loc(),df.iloc())以及索引

pandas数据框loc属性语法及示例

python pandas Data.Frame -- iloc和loc以及icol

Python pandas.DataFrame.loc函数方法的使用

如何将 python 对象(如字典)分配给 pandas 列