按ID拼接列:以X为索引整合各ID对应的Y列
解决方案
可以使用 pandas 的 pivot 方法实现需求,将 X 设为索引,ID 作为列,Y 作为填充值:
import pandas as pd df = pd.DataFrame({'ID':[1,1,1,1,1,2,2,2,3,3,3,3],'X':[1,2,3,4,5,2,3,4,1,3,4,5],'Y':[1,2,3,4,5,2,3,4,5,4,3,2]}) # 执行透视转换 result_df = df.pivot(index='X', columns='ID', values='Y') print(result_df)
运行结果:
ID 1 2 3 X 1 1.0 NaN 5.0 2 2.0 2.0 NaN 3 3.0 3.0 4.0 4 4.0 4.0 3.0 5 5.0 NaN 2.0
如果需要将 X 作为普通列而非索引,可以添加 reset_index():
result_df = df.pivot(index='X', columns='ID', values='Y').reset_index()
此时结果:
ID X 1 2 3 0 1 1.0 NaN 5.0 1 2 2.0 2.0 NaN 2 3 3.0 3.0 4.0 3 4 4.0 4.0 3.0 4 5 5.0 NaN 2.0
内容的提问来源于stack exchange,提问作者Jonathan Pacheco
相关产品推荐
相关产品推荐

