我有一个数据帧(df),看起来像:
date A
2001-01-02 1.0022
2001-01-03 1.1033
2001-01-04 1.1496
2001-01-05 1.1033
2015-03-30 126.3700
2015-03-31 124.4300
2015-04-01 124.2500
2015-04-02 124.8900
Run Code Online (Sandbox Code Playgroud)
对于整个时间序列,我试图将今天的值除以昨天,并使用以下内容记录结果:
df["B"] = math.log(df["A"] / df["A"].shift(1))
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
TypeError: cannot convert the series to <class 'float'>
Run Code Online (Sandbox Code Playgroud)
有人能让我知道如何解决这个问题吗?我试图使用以下方式转换为float:
df["B"] .astype(float)
Run Code Online (Sandbox Code Playgroud)
但无法得到任何工作.任何指导都将非常感谢.
谢谢
小智 15
您可以使用 lambda 运算符将您的函数应用于 Pandas 数据框或系列。更具体地说,如果要将列上的每个元素转换为浮点数,您应该这样做:
df['A'].apply(lambda x: float(x))
Run Code Online (Sandbox Code Playgroud)
这里 lambda 运算符将获取该列上的值(作为 x)并将它们作为浮点值返回。
| 归档时间: |
|
| 查看次数: |
34074 次 |
| 最近记录: |