求Python实现按|拆分列并以拆分内容为新列名的代码
解决方案
情况1:拆分后的列名来自原始列的第一行数据
如果你的原始数据中,目标列的第一行是拆分后的列名、后续行是对应数据,用Pandas可以这样处理:
import pandas as pd # 读取数据(示例为CSV,可替换为你的数据源) df = pd.read_csv('your_data.csv') # 按|拆分目标列,生成多列 split_cols = df['目标列名'].str.split('|', expand=True) # 将第一行拆分结果设为新列名 split_cols.columns = split_cols.iloc[0] # 移除原表头行并重置索引 final_df = split_cols[1:].reset_index(drop=True) # 查看结果 print(final_df)
情况2:拆分内容为「键:值」格式,需将键设为列名
如果目标列的内容是类似键1:值1|键2:值2的格式,要把键作为新列名、值作为对应列的数据:
import pandas as pd df = pd.read_csv('your_data.csv') # 拆分每一行转为字典,再转为DataFrame final_df = df['目标列名'].apply( lambda x: dict(item.split(':') for item in x.split('|')) ).apply(pd.Series) print(final_df)
纯Python处理非DataFrame数据
如果不用Pandas,处理列表形式的原始数据:
# 原始数据示例 raw_data = [ "姓名|年龄|性别", "张三|25|男", "李四|30|女" ] # 提取表头 headers = raw_data[0].split('|') # 处理数据行 processed_rows = [dict(zip(headers, row.split('|'))) for row in raw_data[1:]] print(processed_rows)
内容的提问来源于stack exchange,提问作者Alex Chu
相关产品推荐
相关产品推荐

