博文

目前显示的是 八月, 2025的博文

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)

polars

import polars as pl df = pl.read_csv(     "/mnt/c/Users/Administrator/Downloads/百日咳小于2月大于7岁接种1.csv" ,     schema_overrides = {         "编码" : pl.Utf8,         "出生日期" : pl.Date,         "百日咳接种日期" : pl.Date,     },   # 将编码列指定为字符串类型 ) df.filter(pl.col( "出生日期" ) > pl.date( 2025 , 1 , 25 )) df.glimpse() df.head() df.group_by(pl.col( "出生日期" )).agg(pl.col( "编码" ).n_unique()).sort( "出生日期" ) df.group_by(pl.col( "出生日期" )).agg(pl.col( "编码" ).count()).sort( "出生日期" ) df = pl.DataFrame(     {         "name" : [ "Alice" , "Bob" , "Charlie" , "David" ],         "department" : [ "HR" , "IT" , "Finance" , "IT" ],         "salary" : [ 70000 , 80000 , 120000 , 95000 ],     } ) df = df.with_columns(     [pl.col( "salary" ).cum_sum().over( "department" ).alias( ...