如何将Polars数据框与字典进行关联映射?
如何将Polars数据框与字典进行关联映射?
嘿,这问题我熟!你要把Polars数据框里的region列和字典的键对应上,生成带对应值的新列对吧?其实Polars早就给咱们准备好现成的方法了,几步就能搞定~
先给你回顾下你的初始代码:
import polars as pl my_dict = { 'a': 1, 'b': 2, } my_df = pl.DataFrame({'region': ['a', 'b', 'a']})
要实现映射,直接用Polars的map_dict()方法就行,它专门干这种字典映射的活儿,代码写起来超简洁:
# 生成带映射值的新列 result_df = my_df.with_columns( pl.col('region').map_dict(my_dict).alias('region_value') ) # 打印结果 print(result_df)
运行这段代码后,你就能得到想要的结果:
┌────────┬──────────────┐ │ region │ region_value │ │ --- │ --- │ │ str │ i64 │ ╞════════╪══════════════╡ │ a │ 1 │ │ b │ 2 │ │ a │ 1 │ └────────┴──────────────┘
顺便给你提个小技巧:如果你的region列里可能存在字典中没有的键,怕报错的话,可以给map_dict()加个default参数设置默认值,比如:
# 处理匹配不到的情况,默认填0 result_df = my_df.with_columns( pl.col('region').map_dict(my_dict, default=0).alias('region_value') )
这样就算有不在字典里的区域值,也会自动填0,不会让程序崩掉~
内容来源于stack exchange
相关产品推荐
相关产品推荐

