如何在DataFrame中对gender为'Both Gender'的行进行复制并修改性别列值
处理DataFrame中Gender列的拆分需求
嘿,刚好做过类似的操作,用Pandas可以轻松实现你要的效果。直接上代码和解释吧:
首先,先构造你给出的示例DataFrame:
import pandas as pd df = pd.DataFrame({ 'age': [19, 45, 34], 'gender': ['Female', 'Male', 'Both Gender'], 'occupation': ['High School', 'Designer', 'Coder'] })
接下来是核心处理逻辑:
# 先筛选出不需要拆分的行(gender不是'Both Gender'的) non_split_rows = df[df['gender'] != 'Both Gender'] # 提取需要拆分的行,复制两次并替换gender值 split_rows = df[df['gender'] == 'Both Gender'].copy() split_rows_female = split_rows.assign(gender='Female') split_rows_male = split_rows.assign(gender='Male') # 合并所有行并重置索引 result_df = pd.concat([non_split_rows, split_rows_female, split_rows_male], ignore_index=True)
运行完上面的代码后,result_df就是你想要的结果:
age gender occupation 0 19 Female High School 1 45 Male Designer 2 34 Female Coder 3 34 Male Coder
简单捋下思路:
- 先把无需处理的行单独分离出来,避免后续操作干扰
- 对需要拆分的目标行,复制两份后分别替换gender为Female和Male
- 最后把所有部分合并,重置索引让结果更规整
如果你的数据集规模较大,这种方法也很高效——都是基于Pandas的向量操作,比循环遍历快得多~
内容的提问来源于stack exchange,提问作者Maxima
相关产品推荐
相关产品推荐

