如何用Pandas将单列拆分为多列?两种场景实现方法咨询
Pandas实现两种列拆分需求
先构造示例DataFrame(模拟你的输入数据):
import pandas as pd df = pd.DataFrame({'category': ['apple, banana, orange, grape']})
需求一:保留首元素到category列,其余合并到sub category列
通过字符串拆分后提取首元素,剩余元素重新拼接即可:
# 按", "拆分字符串,得到列表形式的结果 split_list = df['category'].str.split(', ', expand=False) # 构造目标DataFrame1 df1 = pd.DataFrame({ 'category': split_list.str[0], # 取列表第一个元素 'sub category': split_list.str[1:].str.join(', ') # 剩余元素用", "拼接 })
需求二:每个元素单独放在一列
利用str.split的expand=True参数直接拆分到多列,再重命名列名:
# 拆分字符串并展开为多列 split_df = df['category'].str.split(', ', expand=True) # 重命名列,第一列为category,后续为sub category1、sub category2... df2 = split_df.rename(columns={0: 'category'}) df2.columns = ['category'] + [f'sub category{i+1}' for i in range(len(df2.columns)-1)]
内容的提问来源于stack exchange,提问作者boyenec
相关产品推荐
相关产品推荐

