这是我的职能

def price_to_ephe(data):
    converted = []
    for i in data:
        while i >= 360:
            i = i - 360
        converted.append (i)
    return converted

这使得每个数字都小于360.我想将其应用于DataFrame中的列.

2009-01-01, 886.0
2009-01-02, 884.2
2009-01-03, 882.1
2009-01-04, 882.6
2009-01-05, 883.4
2009-01-06, 889.1
2009-01-07, 887.6
2009-01-08, 882.5
2009-01-09, 879.7
2009-01-10, 878.3
2009-01-11, 876.6
2009-01-12, 875.2

预期输出:

2009-01-01, 166.0
2009-01-02, 164.2
..............

...以此类推数字可以很大也可以很小:10000和20.

请帮我以最有效的方式做这件事.DataFrame非常大.我需要所有速度的Pandas !

推荐答案

你想要的是获得你价值的modulo,这是通过mod(或%)实现的:

df['modulo'] = df['value'].mod(360)

或者:

df['modulo'] = df['value'] % 360

输出:

          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

Python相关问答推荐

如何分割我的收件箱,以便连续的数字各自位于自己的收件箱中?

无法导入已安装的模块

如何使用PyTest根据self 模拟具有副作用的属性

从管道将Python应用程序部署到Azure Web应用程序,不包括需求包

如何根据情况丢弃大Pandas 的前n行,使大Pandas 的其余部分完好无损

当多个值具有相同模式时返回空

如何避免Chained when/then分配中的Mypy不兼容类型警告?

海运图:调整行和列标签

如何在Python数据框架中加速序列的符号化

avxspan与pandas period_range

Pandas:将多级列名改为一级

给定高度约束的旋转角解析求解

使用groupby方法移除公共子字符串

Django—cte给出:QuerySet对象没有属性with_cte''''

使用Python查找、替换和调整PDF中的图像'

基于行条件计算(pandas)

在极中解析带有数字和SI前缀的字符串

在代码执行后关闭ChromeDriver窗口

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

Numpyro AR(1)均值切换模型抽样不一致性