Pandas DataFrame:根据条件替换列值
在这个问题中,目标是根据条件有选择地替换 DataFrame 列中的值一个条件。给定一个包含足球队及其第一个赛季的 DataFrame,我们希望将“First Season”列中超过 1990 年的所有值替换为 1。
提供的解决方案 df.loc[(df['First Season] '] > 1990)] = 1,错误地替换了所选行中的所有值,而不仅仅是目标列。为了解决这个问题,我们需要指定要修改的列。
此修改的正确语法是:
df.loc[df['First Season'] > 1990, 'First Season'] = 1
其工作原理如下:
执行这行代码后,只有满足指定条件的 'First Season' 值才会被替换为1,保留 DataFrame 的其余部分。
其他注意事项:
如果所需的结果是布尔指示器,我们可以使用布尔条件生成布尔系列并将其转换为整数数据类型:
df['First Season'] = (df['First Season'] > 1990).astype(int)
这会将 True 值转换为 1,将 False 值转换为 0,从而在“第一季”列中创建布尔指示器。
以上是如何根据条件有选择地替换 Pandas DataFrame 中的列值?的详细内容。更多信息请关注PHP中文网其他相关文章!