【问题标题】:Iterating through dictionary values in python遍历python中的字典值
【发布时间】:2020-02-15 16:13:23
【问题描述】:

我有 1000 多个文本文件,每个文件有两列,一列是日期,另一列是股票价格(在各自的日期)。我已将它们上传并使用以下代码将它们转换为字典:

filelist = os.listdir(r'insertfilepath')
filepath = r'insertfilepath'

dic1 = {}

for file in filelist:
    df = pd.read_csv(filepath + file,sep='\t')
    dic1[file]= df

但是,当我尝试使用以下代码更改每个列的名称时:

for value in dic1:
    for df in value: 
        df.rename(columns={df.columns[0]:'Dates',df.columns[1]:'Prices'},inplace=True)

我收到以下错误:“str”对象没有属性“rename”。

有趣的是,当我将它投射到列表时,这有效,但是我无法分析列表中的数据,因为我无法知道哪些股票与哪些数据匹配。

任何帮助将不胜感激。我是python新手,所以请放轻松。谢谢

【问题讨论】:

标签: python python-3.x pandas finance stock


【解决方案1】:

for value in dic1 循环遍历键,在这种情况下是文件名字符串。你要for value in dic1.values()

如果您需要键和值,则使用返回 (key, value) 元组的dic1.items()

【讨论】:

  • 我写了 :for num in dic1.values(): num.rename(columns={df.columns[0]:'Dates',df.columns[1]:'Prices'}) ...仍然给了我同样的错误
  • 它告诉你值还是字符串?您可以发送 print(list(dic1.items())[:2]) 的输出吗?这应该有两个 key:value 对的元组
  • 其实我只是想通了,现在我有一个新问题大声笑,但如果我无法解决,我会等到明天发布。感谢您的帮助,这非常有价值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2023-03-29
  • 2015-08-07
  • 1970-01-01
  • 2018-01-01
  • 2021-11-23
相关资源
最近更新 更多