使用pandas为CSV添加由其他列计算值的新列报错求助
问题原因
YEAR列被pandas默认识别为整数类型,无法直接与字符串类型的AWARD列做拼接运算,是导致报错的核心原因。
解决代码
import pandas as pd # 读取csv文件 data = pd.read_csv('awards.csv') # 可选步骤:清理AWARD列首尾多余空格,避免生成多余下划线 data['AWARD'] = data['AWARD'].str.strip() # 生成_id列:先把YEAR转字符串,拼接后替换空格为下划线 data['_id'] = (data['YEAR'].astype(str) + ' ' + data['AWARD']).str.replace(' ', '_')
如果想减少一次字符串操作,也可以直接在拼接时用下划线连接,写法如下:
data['_id'] = data['YEAR'].astype(str) + '_' + data['AWARD'].str.replace(' ', '_')
验证输出
处理后的数据和预期效果完全一致:
| YEAR | AWARD | _id |
|---|---|---|
| 2020 | RECORD OF THE YEAR | 2020_RECORD_OF_THE_YEAR |
| 2020 | SONG OF THE YEAR | 2020_SONG_OF_THE_YEAR |
| 2019 | RECORD OF THE YEAR | 2019_RECORD_OF_THE_YEAR |
内容的提问来源于stack exchange,提问作者NewToJS
相关产品推荐
相关产品推荐

