ПРЕДПОСЫЛКИ:
Я импортирую несколько DFS из Всемирного банка, которые имеют такие имена, как "API_AG.SRF.TOTL.K2_DS2_en_csv_v2_10366083.csv
".У меня есть несколько таких файлов со схожими соглашениями об именах, которые хранятся в одной папке на моем компьютере.
ЦЕЛЬ:
В конце я хочу импортировать все эти файлы и назначить ихимена основаны на оригинальных именах файлов.В частности, я хочу разделить оригинальное имя на "."и назовите каждый df "country" + "_" + str(delimitedname[1]) + "_" + str(delimitedname[2])).lower()
(например, в случае "API_AG.SRF.TOTL.K2_DS2_en_csv_v2_10366083.csv.
" df будет назван "country_srf_totl.
"
У меня уже есть код, который создает список имен всех CSVфайлы в папке, разделяет соответствующие имена на «.» и создает список новых имен для dfs (см. ниже)
grab_files = []
for folders, subfolders, files in os.walk(r'filepath'):
for file in files:
if file.endswith('.csv'):
grab_files.append(str(file))
names = []
for i in range(0,len(grab_files)):
name0 = grab_files[i].split(".")
names.append(str("country" + "_" + str(name0[1]) + "_" + str(name0[2])).lower())
print(names)
В результате получается следующий список:
['country_pop_totl_ds2_en_csv_v2_10307762', 'country_gdp_mktp', 'country_gdp_mktp', 'country_srf_totl']
ВЫПУСК: Проблема на самом деле заключается в назначении этих имен во время части импорта моего кода.
Вот то, что я пытался изначально (Примечание: «fp0
» - это определенный путь к файлупапка, содержащая файлы csv):
for i in range(0,len(names)):
eval('names[i]') = pd.read_csv(fp0 + str(grab_files[i]))
Я знаю, что проблема в том, что eval возвращает строку, связанную с 'names [i]', а не объект, который может принимать назначенное значение.И я знаю, что EVAL - это корень всех вещей ... EVAL, но это все, что я мог подумать.
TL / DR: В конце концов я собираюсь импортировать 30+файлы с тем же соглашением об именах, и я хотел бы иметь возможность импортировать их и назначить ихновые имена основаны на старых именах как можно более динамично.
Любая помощь, которую вы можете оказать, будет принята с благодарностью!