【发布时间】:2021-08-02 23:48:23
【问题描述】:
我有几个csv 文件,其第一个index [0] 检索“未命名:0”,我想将此列更改为for loop 中的“日期”。我创建的函数有一个 for 循环,它本质上是这样做的:1) 检索我想要的数据,2) 将其转换为 dataframe,3) 将第一列从 Unnamed:0 更改为 date 和 4) 将 @ 987654326@到csv文件到一个目录。
这是代码
def custom_stock_data (ticker):
for symbol in ticker:
ticker_data = pd.DataFrame(get_data(symbol, start_date = "05/25/2021", end_date = "07/30/2021", interval = "1d"))
ticker_data = ticker_data.rename(columns={'Unnamed:0':'date'}, inplace= True)
ticker_csv = ticker_data.to_csv(r"C:\xampp\htdocs\estagio\data_{}.csv".format(symbol))
print(ticker_data)
custom_stock_data(["AMZN"])
这是 CSV 输出:
Unnamed: 0 open high low close
2021-05-25 3266.669922 3279.820068 3213.760010 3259.050049
我遇到了两种类型的错误:
当我执行custom_stock_data 函数时,我在 ticker_data = ticker_data.rename(columns={'Unnamed:0':'date'}, inplace= True) 行出现缩进错误(缩进中制表符和空格的使用不一致。当我从上一行按Enter 时自动创建制表符,所以我不明白为什么会出现这个缩进错误
第二个错误是在执行custom_stock_data("AMZN") 之后。终端检索“赋值前引用的局部变量'ticker data'”。
我希望通过第二次在 for 循环中调用 ticker_data 可以将数据框中的所有“未命名”列更改为“日期”
【问题讨论】:
-
第一个错误肯定是你的编辑器造成的。如果它不是 Python 感知的,它可能会创建不适用于 Python 的空白。无论如何,请尝试重新输入所有空格,或者如果您的编辑器有用空格替换制表符的命令,请尝试。
-
无论如何,每个问题你应该专注于一个问题;否则,您将获得针对您问题的不同部分的相互竞争的答案,其中没有一个可能被认为可以充分解决您的问题。
-
完全删除你的数据也是有问题的;您能否请edit 将您的 CSV 的 sn-p 包含为文本?
-
for symbol in ticker将遍历您传入的字符串中的各个字母。如果要保留该函数签名,则需要调用custom_stock_data(["AMZN"])。