使用pandas导入CSV文件时高效清理数据

2024-10-01 19:25:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在导入一个包含Python的Pandas的数据集,不幸的是需要进行一些清理。导入后,我需要删除两列(alpha2alpha3)中的所有引号和空格。我现在是这样做的:

# Add alpha2 country codes to custom dataset to normalize data
country_codes = pd.read_csv('datasets/country_codes.csv').rename(columns = {'Alpha-2 code':'alpha2', 'Alpha-3 code':'alpha3'})
# Remove commas and spaces from dataset
country_codes['alpha2'] = country_codes['alpha2'].str.replace('"', '')
country_codes['alpha2'] = country_codes['alpha2'].str.replace(' ', '')
country_codes['alpha3'] = country_codes['alpha3'].str.replace('"', '')
country_codes['alpha3'] = country_codes['alpha3'].str.replace(' ', '')

在我的反对意见中,这有点难看,因为我需要5条规则来处理一些简单的命令。用更少的代码可以更有效地完成?在


Tags: csvto数据alphapandascodecountrydataset
1条回答
网友
1楼 · 发布于 2024-10-01 19:25:47

可以将df.replaceregex一起使用,如下所示:

country_codes[['alpha2', 'alpha3']].replace(r'"|\s','', 
                                                regex=True,
                                                inplace=True)

完整代码如下所示:

^{pr2}$

但是,正如@Jeff在下面的评论中提到的,最好不要使用inplace=True而可以这样做:

country_codes[['alpha2', 'alpha3']] = country_codes[['alpha2', 'alpha3']].replace(r'"|\s','', 
                                                regex=True)

您可以参考文档here了解更多详细信息。在

相关问题 更多 >

    热门问题