根据匹配值修改 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中文网其他相关文章!