首页  >  文章  >  后端开发  >  如何根据另一列中的匹配值替换 Pandas DataFrame 列中的值?

如何根据另一列中的匹配值替换 Pandas DataFrame 列中的值?

Barbara Streisand
Barbara Streisand原创
2024-11-01 06:04:31282浏览

How to Replace Values in Pandas DataFrame Columns Based on Matching Values in Another Column?

根据匹配值修改 Pandas 中的数据

从 Stata 转换到 Pandas 进行数据操作时,了解基于匹配值更改值的方法匹配条件必不可少。考虑这样的情况:当“ID”列中的相应值与某个数字匹配时,我们想要替换“FirstName”和“LastName”列中的特定值。

在 Stata 中,使用以下命令可以轻松完成此任务“如果 ID==103,则替换 FirstName = 'Matt'。”为了在 Pandas 中实现类似的结果,我们可以利用 loc 或链式赋值方法。

loc 方法:

loc 方法使用逻辑索引来评估和修改数据基于特定条件:

<code class="python">import pandas as pd
df = pd.read_csv("test.csv")
df.loc[df.ID == 103, 'FirstName'] = "Matt"
df.loc[df.ID == 103, 'LastName'] = "Jones"</code>

链式赋值:

链式赋值,虽然在较新的 Pandas 版本中不鼓励使用,但也可以用于此任务:

<code class="python">import pandas as pd
df = pd.read_csv("test.csv")
df['FirstName'][df.ID == 103] = "Matt"
df['LastName'][df.ID == 103] = "Jones"</code>

在这两种方法中,表达式“df.ID == 103”创建一个布尔掩码,其中 True 表示 ID 等于 103 的行。随后的赋值然后修改“FirstName”和“LastName”中的 соответствующий 值" 列。

注意: 对于较旧的 Pandas 版本,链式赋值是一种可接受的方法。然而,loc 是更现代版本中的首选方法,因为它提供了更高的稳定性。

以上是如何根据另一列中的匹配值替换 Pandas DataFrame 列中的值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn