如何高效地将 Pandas DataFrame 列中的数值限制在 360 以内

DDD
发布: 2025-10-10 11:52:23
原创
648人浏览过

如何高效地将 pandas dataframe 列中的数值限制在 360 以内

本文介绍了如何使用 Pandas 快速有效地将 DataFrame 列中的数值限制在 0 到 360 之间。通过利用 Pandas 的向量化操作,避免了低效的循环,从而显著提高了处理大型数据集的效率。文章提供了清晰的代码示例,并解释了如何使用取模运算符 % 或 mod() 函数来实现这一目标。

在数据处理过程中,经常需要将数值限制在特定范围内。例如,在处理角度数据时,可能需要将所有角度值都规范化到 0 到 360 度之间。对于 Pandas DataFrame 来说,如果直接使用循环遍历每一行进行处理,效率会非常低下。本文将介绍如何利用 Pandas 的向量化操作,高效地实现这一目标。

使用取模运算符 (%)

最简单且最高效的方法是使用取模运算符 %。该运算符返回除法的余数。对于将数值限制在 0 到 360 之间,只需要对 DataFrame 列应用 % 360 即可。

import pandas as pd

# 创建示例 DataFrame
data = {'date': ['2009-01-01', '2009-01-02', '2009-01-03', '2009-01-04', '2009-01-05', '2009-01-06', '2009-01-07', '2009-01-08', '2009-01-09', '2009-01-10', '2009-01-11', '2009-01-12'],
        'value': [886.0, 884.2, 882.1, 882.6, 883.4, 889.1, 887.6, 882.5, 879.7, 878.3, 876.6, 875.2]}
df = pd.DataFrame(data)

# 使用取模运算符限制数值
df['modulo'] = df['value'] % 360

print(df)
登录后复制

输出:

          date  value  modulo
0   2009-01-01  886.0   166.0
1   2009-01-02  884.2   164.2
2   2009-01-03  882.1   162.1
3   2009-01-04  882.6   162.6
4   2009-01-05  883.4   163.4
5   2009-01-06  889.1   169.1
6   2009-01-07  887.6   167.6
7   2009-01-08  882.5   162.5
8   2009-01-09  879.7   159.7
9   2009-01-10  878.3   158.3
10  2009-01-11  876.6   156.6
11  2009-01-12  875.2   155.2
登录后复制

使用 mod() 函数

Pandas 也提供了 mod() 函数,其功能与取模运算符相同,但使用函数调用的方式。

360鸿图
360鸿图

360公司推出的AI绘画生成工具

360鸿图 24
查看详情 360鸿图
import pandas as pd

# 创建示例 DataFrame
data = {'date': ['2009-01-01', '2009-01-02', '2009-01-03', '2009-01-04', '2009-01-05', '2009-01-06', '2009-01-07', '2009-01-08', '2009-01-09', '2009-01-10', '2009-01-11', '2009-01-12'],
        'value': [886.0, 884.2, 882.1, 882.6, 883.4, 889.1, 887.6, 882.5, 879.7, 878.3, 876.6, 875.2]}
df = pd.DataFrame(data)

# 使用 mod() 函数限制数值
df['modulo'] = df['value'].mod(360)

print(df)
登录后复制

输出:

          date  value  modulo
0   2009-01-01  886.0   166.0
1   2009-01-02  884.2   164.2
2   2009-01-03  882.1   162.1
3   2009-01-04  882.6   162.6
4   2009-01-05  883.4   163.4
5   2009-01-06  889.1   169.1
6   2009-01-07  887.6   167.6
7   2009-01-08  882.5   162.5
8   2009-01-09  879.7   159.7
9   2009-01-10  878.3   158.3
10  2009-01-11  876.6   156.6
11  2009-01-12  875.2   155.2
登录后复制

性能考虑

对于大型 DataFrame,使用向量化操作(如 % 运算符或 mod() 函数)比循环遍历每一行要快得多。这是因为 Pandas 内部使用了优化后的 C 代码来执行这些操作。 因此,在处理大数据集时,请务必避免使用循环,而应尽可能利用 Pandas 的向量化功能。

总结

本文介绍了如何使用 Pandas 将 DataFrame 列中的数值限制在 360 以内。 使用取模运算符 % 或 mod() 函数可以高效地实现这一目标,尤其是在处理大型数据集时。 记住,向量化操作是提高 Pandas 代码性能的关键。

以上就是如何高效地将 Pandas DataFrame 列中的数值限制在 360 以内的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

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

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

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