Pandas拆分列后无法重命名列名问题求助
问题解决:DataFrame列重命名不生效的原因及修复
问题出在你重命名时用了字符串类型的列名键(比如'0'),但str.split(expand=True)生成的DataFrame列名是整数类型的0、1、2、3,两者类型不匹配,导致重命名规则无法匹配到目标列,所以列名没变化。
修复方案1:修正rename的键类型
把字典里的键改成整数即可:
import pandas as pd import numpy as np data = pd.read_csv('/Users/kdavid3mbp/Python/ketamine_data.csv') data['usecase_one'] = data['usecase_one'].str.replace('For', '', regex=True) data['usecase_one'] = data['usecase_one'].str.replace(':', '', regex=True) data['usecase_two'] = data['usecase_two'].str.replace('For', '', regex=True) data['usecase_two'] = data['usecase_two'].str.replace(':', '', regex=True) address = data['address'].str.split('\n', expand=True) # 将键改为整数类型,匹配原列名的类型 new_address = address.rename(columns={ 0: 'Clinic Name', 1: 'Street', 2: 'City_State_Country', 3: 'Misc Address' }) new_address
修复方案2:拆分时直接指定列名(更高效)
可以在str.split的时候直接通过names参数指定列名,省去后续重命名步骤:
# 拆分时直接设置列名 address = data['address'].str.split('\n', expand=True, names=['Clinic Name', 'Street', 'City_State_Country', 'Misc Address'])
内容的提问来源于stack exchange,提问作者kdavid3891
相关产品推荐
相关产品推荐

