gpt4 book ai didi

python - 使用 pd.concat() 函数后出现问题 - 编码 latin-1 - 德语字符

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:05 25 4
gpt4 key购买 nike

我有一个包含德语字符的数据集。当导入编码为“ISO-8859-1”或“latin-1”的 11 个数据集时,德国城市名称列没问题,但是当使用具有相同编码的 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()

结果是:array(['柏林', '科隆', '多特蒙德', '德塞尔多夫', “法兰克福”、“哈勒”、“汉堡”、“汉诺威”、“海德堡”、 '因戈尔施塔特'、'基尔'、'曼海姆'、'慕尼黑'、'诺德施塔特'、 '雷根斯堡'、'斯图加特'、'奥格斯堡'、'比勒费尔德'、'波恩'、 '不来梅', '开姆尼茨', '达姆施塔特', '德累斯顿', '爱尔福特', '埃森', 'G','廷根', '莱比锡','美因茨',

我预计会是这样['柏林''科隆''多特蒙德''杜塞尔多夫''法兰克福''哈勒''汉堡' '汉诺威' '海德堡' '因戈尔施塔特' '基尔' '曼海姆' '慕尼黑' ‘诺德施泰特’‘雷根斯堡’‘斯图加特’]我不想手动更改它们,我想要一个能够保留所有特殊字符的解决方案,因为还有其他列受到影响。

最佳答案

这不是直接答案,但可能有助于更好地识别问题,并且它包含代码,因此将其作为答案发布。

我的建议是尝试确定编码错误的名称的来源。假设您没有名为“FILE_ORIGIN”的列,我会尝试以下操作:

def build_csv(file):
df = pd.read_csv(file,encoding='ISO-8859-1')
df['FILE_ORIGIN'] = file
return df

combined_csv = pd.concat([build_csv(f) for f in all_filenames ],sort=True)
combined_csv.loc[:,['CityName', 'FILE_ORIGIN']].groupby('CityName').agg(lambda x: ','.join(x))

这应该显示出现编码错误的文件。

关于python - 使用 pd.concat() 函数后出现问题 - 编码 latin-1 - 德语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56020486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com