Pandas如何根据条件将一列的值映射到另一列?

霞舞
发布: 2025-02-20 19:42:27
原创
932人浏览过

pandas如何根据条件将一列的值映射到另一列?

使用Pandas根据条件映射列值

场景:

假设您有一个包含三列(a、b、c)的Pandas DataFrame。如何根据c列的值是否存在,将a列的对应值映射到c列?

解决方案:

Pandas的.loc方法可以高效地实现这一目标。.loc允许基于布尔索引选择DataFrame的子集并修改其值。

以下代码演示了如何解决这个问题:

import pandas as pd
import numpy as np

# 创建示例DataFrame
data = {'a': ['a1', 'a2', 'a3', 'a4', 'a5'],
        'b': [1, 2, 3, 4, 5],
        'c': ['c1', np.nan, 'c3', np.nan, 'c5']}
df = pd.DataFrame(data)

# 找到c列非空值的行索引
c_not_null_indices = df['c'].notnull()

# 使用.loc进行条件赋值
df.loc[c_not_null_indices, 'c'] = df.loc[c_not_null_indices, 'a']

# 打印结果
print(df)
登录后复制

输出结果:

    a  b   c
0  a1  1  a1
1  a2  2 NaN
2  a3  3  a3
3  a4  4 NaN
4  a5  5  a5
登录后复制

这段代码首先创建了一个示例DataFrame。然后,它使用df['c'].notnull()找到c列中非空值的行索引。最后,它使用.loc将a列的对应值赋给c列的非空值行。 请注意,我们使用了np.nan来表示缺失值,这比使用None更符合Pandas的规范。

通过这种方法,我们成功地根据c列的值有选择地更新了a列的值。 这种技术在数据清洗和转换中非常实用。

以上就是Pandas如何根据条件将一列的值映射到另一列?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号