polars 长宽格式转换
import polars as pl # 创建示例数据(宽格式) df_wide = pl.DataFrame({ "id" : [ 1 , 2 , 3 ], "name" : [ "Alice" , "Bob" , "Charlie" ], "math" : [ 90 , 85 , 92 ], "english" : [ 88 , 90 , 85 ], "science" : [ 92 , 88 , 90 ] }) print ( "原始数据(宽格式):" ) print (df_wide) # 使用 melt() 转换为长格式 df_long = df_wide.unpivot( index = [ "id" , "name" ], # 保持不变的列 on = [ "math" , "english" , "science" ], # 要转换的列 variable_name = "subject" , # 新的变量名列 value_name = "score" # 新的值列 ) # 使用上面的长格式数据,转换回宽格式 df_back_to_wide = df_long.pivot( values = "score" , # 用作值的列 index = [ "id" , "name" ], # 作为行索引的列 on = "subject" # 作为列名的列 ) print ( "转换回宽格式:" ) print (df_back_to_wide)