Перебор словарных значений в python - PullRequest
1 голос
/ 15 февраля 2020

У меня есть более 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, поэтому, пожалуйста, go. Спасибо

1 Ответ

2 голосов
/ 15 февраля 2020

for value in dic1 перебирает ключи, которые в данном случае являются строками имен файлов. Вы хотите for value in dic1.values()

Если вы хотите и ключи и значения, вы используете dic1.items(), который возвращает (ключ, значение) кортежи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...