当前位置: 首页 > 面试题库 >

Pandas数据框的对数返回

方恺
2023-03-14
问题内容

Python pandas具有pct_change函数,可用于计算数据帧中股票价格的回报:

ndf['Return']= ndf['TypicalPrice'].pct_change()

我正在使用以下代码获取对数返回值,但它给出的值与pct.change()函数完全相同:

ndf['retlog']=np.log(ndf['TypicalPrice'].astype('float64')/ndf['TypicalPrice'].astype('float64').shift(1))
#np is for numpy

问题答案:

这是一种使用来计算日志返回的方法.shift()。结果与所计算的总收益相似但不相同pct_change()。您可以上传示例数据的副本(Dropbox共享链接)以重现您看到的不一致之处吗?

import pandas as pd
import numpy as np

np.random.seed(0)
df = pd.DataFrame(100 + np.random.randn(100).cumsum(), columns=['price'])
df['pct_change'] = df.price.pct_change()
df['log_ret'] = np.log(df.price) - np.log(df.price.shift(1))

Out[56]: 
       price  pct_change  log_ret
0   101.7641         NaN      NaN
1   102.1642      0.0039   0.0039
2   103.1429      0.0096   0.0095
3   105.3838      0.0217   0.0215
4   107.2514      0.0177   0.0176
5   106.2741     -0.0091  -0.0092
6   107.2242      0.0089   0.0089
7   107.0729     -0.0014  -0.0014
..       ...         ...      ...
92  101.6160      0.0021   0.0021
93  102.5926      0.0096   0.0096
94  102.9490      0.0035   0.0035
95  103.6555      0.0069   0.0068
96  103.6660      0.0001   0.0001
97  105.4519      0.0172   0.0171
98  105.5788      0.0012   0.0012
99  105.9808      0.0038   0.0038

[100 rows x 3 columns]


 类似资料:
  • 问题内容: 对于数据框 我有兴趣按名称和等级分组,并且可能会得到汇总值 但是我想在原始字段中获得一个字段,其中包含该行的组号,例如 有没有在熊猫中做到这一点的好方法? 我可以用python来获得 但是在大型数据框上它的运行速度很慢,因此我认为可能会有更好的内置熊猫方法来做到这一点。 问题答案: 很多方便的东西存储在对象中。例如: 所以: 潜伏在某个地方可能会有更好的别名,但是无论如何这应该起作用。

  • 问题内容: 在其他语言(例如R或SQL)中找到该选项的地方,但我不太确定如何在Pandas中进行此操作。 因此,我有一个具有1262列和1行的文件,并且每次出现特定值时都需要返回列标题。 例如说这个测试数据框: 我需要找到列名,例如value = 38.15。最好的方法是什么? 谢谢 问题答案: 看到只有一行,那么您可以调用结果并使用它来屏蔽列: 分解以上内容: 您也可以使用param :

  • 问题内容: 我有一个重复的行的DataFrame。我想获得一个具有唯一索引且没有重复项的DataFrame。可以丢弃重复的值。这可能吗?做完了吗? 问题答案: In [29]: df.drop_duplicates() Out[29]: b c 1 2 3 3 4 0 7 5 9

  • 问题内容: 我有一个数据框,类似: 我想在数据框的末尾添加一个“总计”行: 我尝试使用该命令,但最终得到一个Series,尽管可以将其转换回Dataframe,但它不维护数据类型: 我想维护原始数据帧中的数据类型,因为我需要对总行应用其他操作,例如: 问题答案: 将总计行附加到 仅当您有一列字符串或对象时,才需要进行转换。 这是一个脆弱的解决方案,因此我建议仍然坚持对数据框进行操作。例如。

  • 问题内容: 我有一个熊猫数据框: 其中包括系列对象: 指出了一些命令: 每个字典具有相同的键: 上面是tweeter API的tweet中字段的命令之一(一部分)。我想根据这些命令构建数据框架。 当我尝试直接制作数据框时,每行仅获得一列,并且此列包含整个字典: 当我尝试使用from_dict()创建数据框时,得到相同的结果: 接下来,我尝试了列表理解,但返回了错误: 当我从单行创建数据框时,它几乎

  • 问题内容: 我想将稀疏矩阵(156060x11780)转换为数据帧,但出现内存错误,这是我的代码 我有一个问题 。我该如何解决? 问题答案: 尝试这个: 更新: 对于Pandas 0.20+,我们可以直接从稀疏数组构造: