Я думаю, вам не нужно сначала проходить через чтение файлов в модуле csv.Вы также переназначаете csvReader два раза, поэтому первые два файла (Чикаго и Нью-Йорк) не упоминаются ничем после того, как вы закончили чтение в файлах csv.
Ниже представлен способ чтения панд в нескольких файлах и объединения их в один файл:
import pandas as pd
import os
city_data_files = ['C:\\Users\\jasch\\chicago.csv','C:\\Users\\jasch\\new_york_city.csv', 'C:\\Users\\jasch\\washington.csv']
В этой строке ниже мы перебираем список путей к файлам и создаем DataFrame.для каждого, оставляя нам список DataFrames.Кроме того, мы используем метод .assign()
, чтобы добавить столбец с именем файла.Мы делаем это так, после объединения DataFrames вместе мы можем все еще сказать, какая строка пришла из какого файла.
dfs = [
pd.read_csv(city_data_file, parse_dates=['Start Time'])\
.assign(filename=os.path.basename(city_data_file))
for city_data_file in city_data_files
]
Теперь мы можем пойти дальше и объединить все фреймы данных в один фрейм данных.
df = pd.concat(dfs) # this line combines the contents of the files
df['month'] = df['Start Time'].dt.month
Что касается вашей ошибки - трассировка стека точно сообщает вам, в чем заключается проблема:
----> 9 df = pd.read_csv(CITY_DATA[city])
NameError: name 'city' is not defined
Вы используете переменную city, но никогда не определяли ее нигде в своем коде.