如何获得一组 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())以及索引
python pandas Data.Frame -- iloc和loc以及icol