【问题标题】:Changing an index column name of a csv file inside a for loop在 for 循环中更改 csv 文件的索引列名称
【发布时间】: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"])

标签: python pandas for-loop


【解决方案1】:

只需在 ticker_csv = ticker_data.to_csv(r"C:\xampp\htdocs\estagio\data_{}.csv".format(symbol), index = False) 中传递index = False 就可以了!固定

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    相关资源
    最近更新 更多