如何提取DataFrame列分割后的指定值并添加为新列?
解决方案
方法1:直接赋值添加新列(最简便)
通过str.split()分割Name列并提取索引为1的元素,直接赋值给新列即可:
# 分割后直接取索引1的元素,生成新列 final_df["CallSign"] = final_df["Name"].str.split("_", expand=False).str[1]
或者用expand=True生成多列DataFrame后提取目标列:
# 将分割结果展开为多列DataFrame,取第2列(索引1) split_df = final_df["Name"].str.split("_", expand=True) final_df["CallSign"] = split_df[1]
方法2:指定位置插入新列
如果需要把新列插入到DataFrame的指定位置(比如你尝试的第2列,索引1),先提取目标数据,再用insert()方法:
# 先提取分割后索引1的元素 new_col_data = final_df["Name"].str.split("_", expand=False).str[1] # 在索引1的位置插入名为Test的新列 final_df.insert(1, "Test", new_col_data, allow_duplicates=True)
你之前的代码问题在于第三个参数传入了原Name列的数据,替换为处理好的new_col_data就能得到正确结果。
最终效果
处理后你的DataFrame会包含新列,示例如下:
| Name | Test |
|---|---|
| t_alpaha_omega | alpaha |
| t_bravo_omega | bravo |
| d_charlie_omega | charlie |
| t_delta_omega | delta |
内容的提问来源于stack exchange,提问作者uncrayon
相关产品推荐
相关产品推荐

