У меня есть набор данных, содержащий немецкие символы.При импорте 11 наборов данных с кодировкой «ISO-8859-1» или «latin-1» столбец названий городов Германии подходит, но при использовании pd.concat () с той же кодировкой названия городов меняются.
encoding = 'utf-8-sig' не работает, и вывод
import sys
print(sys.stdout.encoding)
равен UTF-8
# Importing the dataset
skill1 = pd.read_csv('./SkillWizardCityAerospaceEngineering26april.csv',encoding='ISO-8859-1')
skill2 = pd.read_csv('./SkillWizardCityBeautyandCosmetics26april.csv',encoding='ISO-8859-1')
skill3 = pd.read_csv('./SkillWizardCityBusinessSuportFunction26april.csv',encoding='ISO-8859-1')
для всех этих csv
print(skill1.CityName.unique())
он дает ['Берлин' 'Кельн' 'Дортмунд' 'Дюссельдорф' 'Франкфурт' 'Галле' 'Гамбург' 'Ганновер' 'Гейдельберг' 'Ингольштадт' 'Киль' 'Мангейм' 'Мюнхен' 'Нордерштедт' 'Регенсбург' ''Штутгарт']
После слияния
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
#combine all files in the list
combined_csv = pd.concat([pd.read_csv(f,encoding='ISO-8859-1') for f in all_filenames ],sort=True)
combined_csv.CityName.unique()
результат будет следующим: массив (['Berlin', 'Cologne', 'Dortmund', 'DÃà€‚‚ à à à ƒ ƒ ƒ ‚‚ ‚ƒ ƒ se se se se se se se se se se se se se se.«Мангейм», «Мюнхен», «Нордерштедт», «Регенсбург», «Штутгарт», «Аугсбург», «Билефельд», «Бонн», «Бремен», «Хемниц», «Дармштадт», «Дрезден»,«Эрфурт», «Эссен», «Гейнцхан», Майнц, Майнц, Лейпциг, Майнц',
Я ожидаю, что это будет [' Берлин '' Кельн '' Дортмунд '' Дюссельдорф '' Франкфурт '' Галле '' Гамбург '' Ганновер '' Гейдельберг '' Ингольштадт '' Киль '' Мангейм ''«Мюнхен», «Нордерштедт», «Регенсбург», «Штутгарт»]. Я не хочу менять их вручную, мне нужно решение, которое сохранит все специальные символы, так как были затронуты другие столбцы.