【发布时间】:2021-02-27 03:22:44
【问题描述】:
我有一个包含 2 列(日期和股票价格)的 csv 文件,我想计算百分之一的变化并添加一个新列。我想这样做是因为在此之后我想将数据分组为正百分比变化和百分比变化。
datafile = "file.csv"
import pandas as pd
df = pd.read_csv('file.csv',na_values='null')
到目前为止,我尝试了这些,但都失败了
1.
x = df.pct_change()
df["1 day percent change"] = x
TypeError: /: 'str' 和 'str' 的操作数类型不受支持
2.
df["1 day percent change"] = ((np.diff(df))/(df[:,1:]))
TypeError: 不支持的操作数类型 -: 'float' 和 'str'
3.
new_column = ((np.diff(df))/(df[:,1:]))
df = df.merge(new_column, left_index=True, right_index=True)
TypeError: 不支持的操作数类型 -: 'float' 和 'str'
你能帮我找出问题吗?谢谢!
【问题讨论】:
-
请提供您的 df 的打印文本样本
-
另外,请提供失败的上下文。结果不是预期的?错误?
-
尝试指定目标列:
df["1 day percent change"] = df['target_col'.pct_change()] -
@CainãMaxCouto-Silva 我跑了 df["1 day percent change"] = df["1 day percent change".pct_change()] 并得到一个 AttributeError: 'str' object has no attribute ' pct_change'
-
@Jerome 刚刚做了 - 抱歉最初没有包含