python—如何将一个大的数字集Map到 Dataframe 中的另一个数字集?

qnakjoqk  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(170)

我有一列数字代表一年中的周数,从2020年的第27周开始,到2021年的第26周结束。周数上升到53,然后在新的一年的第1周再次开始。我的目标是将这个周数列表分配给一组连续的整数,基本上从1到53。
例如,第27周=1,第28周=2,第26周=53
做这件事最好的方法是什么?

k10s72fa

k10s72fa1#

啊,很好,这很容易。您可以使用Map创建一个字典,然后将其应用于数据框中的周数。

如果您运行的是python 3.8或更高版本:

week_map_a = {(i+26):i for i in range(1,27)}
week_map_b = {i:i+26 for i in range(1,27)}
week_map  = {a:b for a,b in list(week_map_a.items())+list(week_map_b.items())}

df['week_numbers'] = df['week_numbers'].apply(lambda x: week_map[x])

如果您运行的是python 3.9或更新版本:

week_map = {(i+26):i for i in range(1,27)} | {i:i+26 for i in range(1,27)}
df['week_numbers'] = df['week_numbers'].apply(lambda x: week_map[x])

也行。

相关问题