Maison >développement back-end >Tutoriel Python >Introduction à la méthode de modification des noms de colonnes DataFrame dans pandas (exemple de code)
Cet article vous présente la méthode de modification des noms de colonnes DataFrame dans les pandas (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Cet article est référencé à partir de : pandas Modifier les noms de colonnes DataFrame
Le blog original effectue la même opération de modification pour chaque élément de DataFrame.columns
Mais mon travail est une copie mécanique consistant à effectuer différentes opérations sur chaque élément. N'hésitez pas à m'éclairer
Poser une question
Il existe un DataFrame nommé dataset
>>> dataset.columns Index(['age', 'job', 'marital', 'education', 'default', 'housing', 'loan', 'contact', 'month', 'day_of_week', 'duration', 'campaign', 'pdays', 'previous', 'poutcome', 'emp.var.rate', 'cons.price.idx', 'cons.conf.idx', 'euribor3m', 'nr.employed', 'y'], dtype='object')
Maintenant, je veux nommez-le Changez-le en :columns
>>> new_columns Index(['age_0', 'job_1', 'marital_2', 'education_3', 'default_4', 'housing_5', 'loan_6', 'contact_7', 'month_8', 'day_of_week_9', 'duration_10', 'campaign_11', 'pdays_12', 'previous_13', 'poutcome_14', 'emp.var.rate_15', 'cons.price.idx_16', 'cons.conf.idx_17', 'euribor3m_18', 'nr.employed_19', 'y_20'], dtype='object')
Comment faire ?
Solution1. Modifier via ses propres propriétés de la classe DataFrame.columns :>>> # 先解决`new_columns`的推导问题 >>> # 列表推导 >>> new_columns_list = [column_str+'_'+str(i) for i ,column_str in enumerate(dataset.columns)] >>> # 类型转换 >>> new_columns = pd.core.indexes.base.Index(new_columns_list) >>> dataset.columns = new_columns
.map(mapper, na_action=None)
>>> # 注:mapper 多运用 lambda 表达式 >>> # 但我似乎没有找到在 lambda 表达式中改变两个值的方法 >>> # 所以只能蹩脚地用一个全局变量i, 和映射函数mapper() >>> # 希望大家能帮我找到方法 >>> i = 0 >>> def mapper(x): # 映射函数即 mapper global i x += '_' + str(i) i += 1 return x >>> dataset.columns.map(mapper)
DataFrame.columns.str
. 🎜>
, mais help(DataFrame.columns.str)
n'ai pas trouvé de méthode que je pourrais appliquer. J'ai pensé que je prendrais un peu de temps pour traduire ce document
2. Via la fonction DataFrame .rename() pour modifier
1. Méthode de dictionnaire violente (avantages : vous ne pouvez modifier que des colonnes spécifiques)>>> # 此处先用字典推导法 >>> new_dict = { key:key+'_'+str(i) for i, key in enumerate(dataset.columns) } >>> dataset.rename(columns=new_dict, inplace=True)
>>> # 原博文依然用到了 lambda 表达式 >>> # 我就再生搬硬套一次, 把上面的复制过来 >>> # 蹩脚地用一个全局变量i, 和映射函数mapper() >>> i = 0 >>> def mapper(x): # 映射函数即 mapper global i x += '_' + str(i) i += 1 return x dataset.rename(columns=mapper, inplace=True)Pour résumer un peu : la dérivation de dictionnaire et la dérivation de liste sont très similaires. La plus grande différence est de savoir s'il faut choisir des crochets ou des accolades <.>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!